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:
Ridge Kimani
2023-10-10 10:04:09 +03:00
committed by GitHub
parent 52858f8a09
commit c5a25665e0
2 changed files with 3 additions and 2 deletions

View File

@ -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 }

View File

@ -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', () => {