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