前言:過濾數組中的空值,包括 (undefined、null、“”、0、false、NaN)
Boolean函數可以將一個值轉換為布爾值,空值會被轉換為false,非空值會被轉換為true
方法:
const arr = [1, 2, "", 3, null, undefined, 4, 0, false, NaN];const newArr = arr.filter(Boolean);console.log(newArr); // [1, 2, 3, 4]
注意:該方法對于需要過濾字符串數組中的空值(null undefined ‘’)比較合適,如果數組中有數字,則 0 也會被過濾掉,0的布爾值為false。
如果要保留 0 需要特判:
const arr = [1, 2, "", 3, null, undefined, 4, 0, false, NaN];const newArr = arr.filter(item => {if(item === 0) return true; return Boolean(item)
});console.log(newArr); // [1, 2, 3, 4, 0]
解釋
Boolean
作為一個函數的時候,能夠根據元素的真假類型,對應返回 true 或 false:
arr.filter(Boolean)等價于arr.filter(item => Boolean(item))