我构建了一个函数每个,它应该迭代一个数组并返回 true 如果动作(例如,元素< 10)对所有元素执行的操作是 true 。这是我的代码:
function every(array, action) {
var trueOrFalse = true
for (var i = 0; i < array.length; i++)
trueOrFalse = trueOrFalse && action(array[i]);
if (trueOrFalse = true) return true;
else return;
}
array1 = [1,2,3,4,5,6,7,8,9,10,11]
console.log(every(array1, function(element) {
return element < 10
}))
我没有看到任何错误。 使用 array1 ,即使它包含数字&gt;,它也会返回 true 。 10。 问题出在哪里?
由于
答案 0 :(得分:4)
if (trueOrFalse = true) return true;
应该是
if (trueOrFalse == true) return true;
答案 1 :(得分:0)
您的条件是使用了错误的运算符,您应该使用==
运算符。
您可以使用if (trueOrFalse == true) return true;
或强>
您可以将其编写为if (trueOrFalse) return true;
,仍会将其评估为if( true )
答案 2 :(得分:0)
您可以删除if
语句,并依靠良好的旧布尔代数!
function every(array, action) {
var trueOrFalse = true
for (var i = 0; i < array.length; i++)
trueOrFalse = trueOrFalse && action(array[i]);
return trueOrFalse;
}
array1 = [1,2,3,4,5,6,7,8,9,10,11]
console.log(every(array1, el => el < 10));