mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-04 15:39:42 +08:00
bug: abs returns 0 on an empty array (#1473)
* bug: update edge case for empty array * bug: add edge case for empty arrays * feat: add test case for empty array --------- Co-authored-by: Ridge Kimani <ridgekimani@gmail.com>
This commit is contained in:
@ -12,11 +12,11 @@
|
||||
const abs = (num) => {
|
||||
const validNumber = +num // converted to number, also can use - Number(num)
|
||||
|
||||
if (Number.isNaN(validNumber)) {
|
||||
if (Number.isNaN(validNumber) || typeof num === 'object') {
|
||||
throw new TypeError('Argument is NaN - Not a Number')
|
||||
}
|
||||
|
||||
return validNumber < 0 ? -validNumber : validNumber // if number is less then zero mean negative then it converted to positive. i.e -> n = -2 = -(-2) = 2
|
||||
return validNumber < 0 ? -validNumber : validNumber // if number is less than zero mean negative then it converted to positive. i.e -> n = -2 = -(-2) = 2
|
||||
}
|
||||
|
||||
export { abs }
|
||||
|
@ -5,6 +5,7 @@ describe('Testing abs function', () => {
|
||||
expect(() => abs('234a')).toThrow()
|
||||
expect(() => abs({})).toThrow()
|
||||
expect(() => abs([12, -32, -60])).toThrow()
|
||||
expect(() => abs([])).toThrow() // coerces to 0
|
||||
})
|
||||
|
||||
it('Testing for number of string type', () => {
|
||||
|
Reference in New Issue
Block a user