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

时间:2018-03-29 20:15:24

标签: 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

谢谢!

1 个答案:

答案 0 :(得分:2)

数字没有length属性,只需检查变量而不是。

条件较小或较大的条件下的

undefined会返回false。结果数组为空,因为每个项目的条件为false

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

console.log(smallNumbers);
&#13;
&#13;
&#13;