javascript使用过滤器w&&没有返回所需的console.log

时间:2016-07-31 20:17:46

标签: javascript function filter

/ *我基本上试图使用&&操作员不仅从我的阵列返回20和40而且还返回30.我确定这是一个非常简单的错误,但我很想知道我在哪里搞砸我的语法!请原谅不好的语义,我正在重复使用与练习* /

的变体相同的过滤操作
var numbersArray = [20, 25, 30, 40];

var filtering = numbersArray.filter(function resultNewNumbers(newnewNUM){
    return (newnewNUM % 20 === 0) && (newnewNUM % 10 === 0);
});

console.log(filtering);

2 个答案:

答案 0 :(得分:2)

通过此测试

(newnewNUM % 20 === 0) && (newnewNUM % 10 === 0)

你检查newnewNUM是否是20 10的倍数。因此30不是30的倍数。

但如果你以这种方式修改你的测试:

(newnewNUM % 20 === 0) || (newnewNUM % 10 === 0) 30 will emerge

答案 1 :(得分:1)

试试这个30 % 20 = 0.5

var numbersArray = [20, 25, 30, 40];

var filtering = numbersArray.filter(function resultNewNumbers(newnewNUM){
    return (newnewNUM % 20 === 0) || (newnewNUM % 10 === 0);
});

console.log(filtering);

或者如果你想使用&&请尝试以下

var numbersArray = [20, 25, 30, 40];

var filtering = numbersArray.filter(function resultNewNumbers(newnewNUM){
    return (newnewNUM / 20 > 0) && (newnewNUM % 10 === 0);
});

console.log(filtering);