/ *我基本上试图使用&&操作员不仅从我的阵列返回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);
答案 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);