簡體   English   中英

為什么這個 Javascript 函數總是返回 true?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM