我构建了一个函数,每个函数都应该在数组上迭代,如果操作(针对ex )返回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,即使它包含数字> 10,它也返回true。问题在哪里?
谢谢
发布于 2017-05-10 15:18:14
if (trueOrFalse = true) return true; 应该是
if (trueOrFalse == true) return true;发布于 2017-05-10 15:18:02
您需要计算trueOrFalse等于true,对此您需要双等于
if (trueOrFalse == true) return true;另外,您只需要使trueOrFalse的值与true相同
加分:
if (trueOrFalse === true) return true;使用三个相同的符号来评估完全相同的类型和值。这在这里不是必需的,但是知道是有用的。
发布于 2017-05-10 15:27:13
您的条件是使用了不正确的运算符,您应该使用==运算符。
您可以使用if (trueOrFalse == true) return true;
或
您可以将其编写为if (trueOrFalse) return true;,但仍将其计算为if( true )。
https://stackoverflow.com/questions/43896595
复制相似问题