首页 > 解决方案 > javascript:无法使用 array.every() 区分“真”和“假”

问题描述

下面的脚本封装了我对 .every() 的不理解。两个输出都是“T”,而我本来期望“F”。请注意,唯一的区别是数组条目是第一个中的字符串和第二个中的数字。我对 .some() 没有同样的问题。有人可以解释一下吗?谢谢。

let isNegative = curr => curr = "-1";
let isPositive = curr => curr = "+1";

let out1 = ["+1", "-1", "+1"].every(isPositive) ? "T" : "F";
console.log(out1); //->"T" instead of "F"

let out2 = [1, -1, 1].every(isPositive) ? "T" : "F";
console.log(out2); //->"T" instead of "F"

标签: javascriptarrays

解决方案


它应该是=====

let isNegative = curr => curr == "-1";
let isPositive = curr => curr == "+1";

let out1 = ["+1", "-1", "+1"].every(isPositive) ? "T" : "F";
console.log(out1); //->"T" instead of "F"

let out2 = [1, -1, 1].every(isPositive) ? "T" : "F";
console.log(out2); //->"T" instead of "F"


推荐阅读