[英]Why does this Javascript function always return true?
我構建了一個函數every應該遍歷一個數組並返回true如果對所有元素執行的操作(例如 element < 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 。問題出在哪里?
謝謝
if (trueOrFalse = true) return true;
應該
if (trueOrFalse == true) return true;
您需要評估 trueOrFalse 是否等於 true 對於您需要雙重等於
if (trueOrFalse == true) return true;
否則,您只會使 trueOrFalse 的值與 true 相同
獎勵積分:
if (trueOrFalse === true) return true;
使用三個等號是評估完全相同的類型和值。 這在這里不是必需的,但知道它很有用。
您的條件使用了不正確的運算符,您應該使用==
運算符。
您可以使用if (trueOrFalse == true) return true;
或者
你可以把它寫成if (trueOrFalse) return true;
它仍然會像if( true )
一樣評估它
您可以刪除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));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.