Javascript &引用;无法读取属性';过滤器';“无效”的定义;(与我在这里看到的其他解决方案略有不同)

Javascript &引用;无法读取属性';过滤器';“无效”的定义;(与我在这里看到的其他解决方案略有不同),javascript,Javascript,所以我的任务是。给定一个整数数组。 返回一个数组,其中第一个元素是正数的计数,第二个元素是负数的和。 如果输入数组为空或null,则返回空数组 我在这里看到了一些解决角度或反应的方法。 我收到错误“无法读取null的属性“filter” 我的代码: 函数计数正/负(输入){ 让positiveEnums=input.filter(number=>number>0); 让negativeenums=input.filter(number=>number{return total+num}) 让结

所以我的任务是。给定一个整数数组。 返回一个数组,其中第一个元素是正数的计数,第二个元素是负数的和。 如果输入数组为空或null,则返回空数组

我在这里看到了一些解决角度或反应的方法。 我收到错误“无法读取null的属性“filter”

我的代码:


函数计数正/负(输入){
让positiveEnums=input.filter(number=>number>0);
让negativeenums=input.filter(number=>number<0);
设positiveCount=positiveEnums.length;
让negativeSum=negativeenums.reduce((total,num)=>{return total+num})
让结果=[positiveCount,negativeSum];
返回结果;
}

因此,您需要检查输入是否有值

我已经使用了if语句来确保它已填充。如果不是,else语句将返回一个空数组

函数计数正/负(输入){
//如果停止,则检查输入是否已设置
//检查其是否为非空
//如果数组是数字,则选择checls
如果((输入类型!=='undefined')&&&(输入!==null)&&(!input.some(isNaN))){
让positiveEnums=input.filter(number=>number>0);
让negativeenums=input.filter(number=>number<0);
设positiveCount=positiveEnums.length;
让negativeSum=negativeenums.reduce((total,num)=>{return total+num})
让结果=[positiveCount,negativeSum];
返回结果;
} 
其他的
{
让结果=[];
返回结果;
}
}
设x=countPositivesSumNegatives([4,4,-14]);

console.log(x)
错误只是意味着
input
null
。如果
input
null
,怎么办?因为错误消息声明
无法读取null的属性'filter'
您的答案将无法帮助编辑它以反映null的处理方式为什么不
if(input&&input.filter)
:p这样,您就永远不会出现错误-例如,如果使用字符串、布尔值、数字或对象调用函数,代码仍将抛出:如果从未声明变量,并且您尝试检查其存在性,您将得到错误。但就我所知,typeof操作符是唯一一个绕过它检查数组是否为数字的操作符