“无法读取null的属性'filter'”(与我在这里看到的其他解决方案略有不同)

时间:2019-11-23 00:06:27

标签: javascript

所以我的任务是。给定一个整数数组。 返回一个数组,其中第一个元素是正数的计数,第二个元素是负数的总和。 如果输入数组为空或为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;
}

1 个答案:

答案 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)