所以我的任务是。给定一个整数数组。 返回一个数组,其中第一个元素是正数的计数,第二个元素是负数的总和。 如果输入数组为空或为null,则返回一个空数组。
我在这里看到了一些解决角度问题或反作用问题的方法。 我收到错误消息“无法读取null的属性'filter'”
我的代码:
function countPositivesSumNegatives(input) {
let positiveNums = input.filter(number => number > 0);
let negativeNums = input.filter(number => number < 0);
let positiveCount = positiveNums.length;
let negativeSum = negativeNums.reduce( (total, num) => {return total + num} )
let result = [positiveCount, negativeSum];
return result;
}
答案 0 :(得分:-1)
所以您需要检查输入的值...
我使用了if语句来确保其已填写。如果不是,则else语句将返回一个空数组
function countPositivesSumNegatives(input) {
//if statment to check that the input is set
// checks its not null
// checls if the array is numeric
if ((typeof input !== 'undefined') && ( input !== null ) && (!input.some(isNaN))){
let positiveNums = input.filter(number => number > 0);
let negativeNums = input.filter(number => number < 0);
let positiveCount = positiveNums.length;
let negativeSum = negativeNums.reduce( (total, num) => {return total + num} )
let result = [positiveCount, negativeSum];
return result;
}
else
{
let result =[];
return result;
}
}
let x = countPositivesSumNegatives([4,4,-14]);
console.log(x)