簡體   English   中英

如何過濾掉一個空白數組? 反應/Javascript/Es6

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

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