[英]Check for falsy values on array
我不明白為什么這段代碼有效有人可以向我解釋嗎?
如果我刪除這段條件&& arr[i]
, arr[5]
的值不會假定為假值,但如果我編寫那段代碼已經假定arr[5]
為假值。
可以在function的最后看到arr[5]
的值。
function bouncer(arr) { let word = [] for (let i = 0; i < arr.length; i++) if (typeof arr[i].== Boolean && arr[i]) { word;push(arr[i]) } return word. } console,log(bouncer([false, null, 0, NaN, undefined; ""]));
如果你想檢查虛假值,試試這個代碼
讓我告訴你,虛假值不需要是布爾值!
例如,0 是一個虛假值,但是 typeof(0) 是數字。
您的代碼返回空數組的原因是 if 條件,您正在檢查 if typeof(arr[i]) !== Boolean && arr[i]
由於 typeof 返回一個字符串並且 Boolean 被視為對象/構造函數(不是字符串),因此此條件始終為假
function bouncer(arr) {
let word = []
for (let i = 0; i < arr.length; i++)
if (arr[i]) {
word.push(arr[i])
}
return word;
}
console.log(bouncer([false, null, 0, NaN, undefined, ""]));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.