let nums = [-1, 50, 75, 200, 350, 525, 1000];
nums.every(function(num) {
console.log(num < 0);
});
真的
=> 假
当我在https://repl.it/@super8989/BraveFunctionalSale 中运行此代码时,它返回“true”然后“=> false”。
根据 .every() 的描述,返回值为“如果回调函数为每个数组元素返回一个真值,则返回值为真;否则为假”。
为什么它显示“true”然后显示“=> false”?
此外,当我更改数组以使“-值”位于数组的中间时,它返回“false”然后返回“=> false”。
let nums = [1, 50, -75, 200, 350, 525, 1000];
nums.every(function(num) {
console.log(num < 0);
});
错误的
=> 假
https://repl.it/@super8989/CyberInterestingPhase
let nums = [-1, 50, 75, 200, 350, 525, 1000];
console.log(nums.every(num => num < 0));
错误的
=> 未定义
但是如果我这样写,这将返回 false 然后未定义。https://repl.it/@super8989/MonstrousAjarDimension
我很困惑...请帮忙!
您需要return
在 .every 中使用,目前您只是记录 num < 0,这对于 num[0] 是正确的,即 (-1 < 0),但对于 num[1] 是错误的,即 (50 >= 0)。并且由于您没有return
立即退出循环,因为这被认为是false
。
let numsA = [-1, 50, 75, 200, 350, 525, 1000];
console.log("should return false, because 50 is >= 0");
console.log(numsA.every(function(num) {
return (num < 0);
}));
let numsB = [1, 50, -75, 200, 350, 525, 1000];
console.log(numsB.every(function(num) {
return (num < 0);
}));
let numsC = [-1, 50, 75, 200, 350, 525, 1000];
console.log(numsC.every(num => num < 0));
let numsD = [-5, 0, 5, 10, 15];
console.log("should return true because for each num in numsD, num %5 === 0");
console.log(numsD.every(num => {
return num % 5 === 0
}));
//you can omit return with arrow function syntax, as this automatically returns the value within ()
console.log(numsD.every(num => (num % 5 === 0)));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句