[英]How to filter off a blank array? React/Javascript/Es6
我正在嘗試通過數組進行過濾。 我做了一個 useEffect ,它將每個 object 存儲到它自己的 state 中。 這包括默認的useState([])
空白數組。 我正在嘗試制作 function 來刪除它。 這是 function:
const checker = [null, undefined, [{}], {},[],''];
const filterredArray = newArray.filter((item) => !checker.includes(item));
console.log(filterredArray);
即使我運行它,我仍然會在index[0]
處獲得如下圖所示的空白數組。 我應該在 checker 變量中放入什么條件來檢查和刪除空白數組?:
我不確定我是否正確理解了您的問題,但您的過濾將失敗,因為.includes
檢查 object 引用。
所以如果你有
const newArray = [{}]
const checker = [null, undefined, [{}], {} ,[], ''];
const filteredArray = newArray.filter((item) => !checker.includes(item));
console.log(filteredArray);
filteredArray
仍將包含{}
,因為{} === {}
評估為false
。
為了解決這個問題,您可以使用“深度相等”來比較對象,例如使用 lodash
const filterredArray = newArray.filter((item) => !checker.some(check => _.isEqual(check, item)));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.