簡體   English   中英

如何檢查 javascript 數組是否已包含特定數組

[英]How can I check if javascript array already contains a specific array

我學習 Javascript 並閱讀並理解includes如何工作以測試數組中是否存在值。

當我有一組看起來像這樣的項目時,我的問題就來了:

state = { focused: null, files: [] }; :

圖片在這里顯示: 在此處輸入圖像描述

當我添加一個新的newFile並且它是相同的時,它不應該添加它,但是評估,

if (newFile &&.files.includes(newFile)) {..總是說 false 那么如何測試這個我是否必須測試newFiles中的各個值?

Array.includes不會對 object 做深度比較,只會做淺層比較引用。 這樣,即使具有相同值的對象也會在測試中失敗,因為它們具有不同的引用。

在您的情況下,您可以比較id ,它對於每個 object 應該是唯一的。您可以使用Array.every檢查所有值是否都通過了測試。 這樣您就可以檢查每個文件 ID 是否與新文件 ID 不匹配:

if (newFile && files.every(({id}) => newFile.id !== id))

Array.includes 對 Array 或 Object 進行引用比較,因此您可以使用 Array.filter

if (newFile && newFile.filter(e => { /*Comparison logic */ }).length > 0) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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