Javascript 为什么filter()返回空数组?

Javascript 为什么filter()返回空数组?,javascript,Javascript,为什么下面的代码记录为[]而不是[200,3.14,7,13] let randomNumbers = [375, 200, 3.14, 7, 13, 852]; let smallNumbers = randomNumbers.filter(function(number) { return number.length < 250;}); console.log(smallNumbers); // prints [] — empty array 谢谢大家! 数字没有长度属性,只需检查

为什么下面的代码记录为[]而不是[200,3.14,7,13]

let randomNumbers = [375, 200, 3.14, 7, 13, 852];
let smallNumbers = randomNumbers.filter(function(number) {
return number.length < 250;});

console.log(smallNumbers); // prints [] — empty array
谢谢大家!

数字没有长度属性,只需检查变量而不带长度属性即可

在具有较小或较大条件的条件中未定义返回false。由于每个项的条件都为false,因此结果数组为空

var randomNumbers=[375200,3.14,7,13852], smallNumbers=randomNumbers.filterfunctionnumber{ 返回次数<250; };
console.logsmallnumber;数字没有长度。375.长度===undefined@Ryaniirc您可以为其指定长度属性吗?可能会被默默忽略testing@SterlingArcher:我想你可以在数字上加个长度。原型?但关键是还没有。@SterlingArcher,条件不依赖于长度,这是对长度的错误使用,但不会导致回答问题。@NinaScholz我可以同意这一点,但是我的第二次投票将以打字/语法问题的形式结束,或者为什么我的代码无法解释数组为何为空,不存在的属性返回undefined,因此number.length导致比较undefined<250,计算结果为false。