簡體   English   中英

基於對象的對象過濾器數組如何存在於另一個對象數組中?

[英]How filter array of objects based on objects exists in another array of objects?

我有

array1 = [{ name: sample1 }, { name: sample2 }, { name: sample3 }];
array2 = [{ name: sample1 }, { name: sample2 }];

我想過濾array2中存在的array1對象。 所以我需要有

[{ name: sample1 }, { name: sample2 }]

javascript怎么弄到?

我猜您的對象在引用上並不相同,因此您可以嘗試對它們進行字符串化然后進行比較。

使用Set<\/code>在性能方面應該更好。

注意:<\/strong>使用這種字符串化方法,屬性的順序很重要。 如果屬性的順序可能不同,那么您可以考慮使用像lodash<\/a>這樣的庫。

您可以在 JavaScript 中使用 .filter 和 .some 函數,這是示例

const array1 = [{ name: "sample1" }, { name: "sample2" }, { 
name: "sample3" }];
 const array2 = [{ name: "sample1" }, { name: "sample2" }];
let Result = array1.filter(function(obj) {
  return array2.some(function(obj2) {
    return obj.name== obj2.name;
});
}); 
console.log(Result)

您可以使用對象解構、 map()<\/code>和.includes()<\/code>方法,如下所示:

暫無
暫無

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

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