你可以使用 JavaScript 中的 Set 数据结构来去重, Set 本质上是一个无序的且不重复的数据集合。可以将 Set 看作是数组的替代品,它具有与数组类似的 API,但是它不允许出现重复的元素。你可以这样做:
const array1 = [{id: 1, name: 'Alice'}, {id: 2, name: 'Bob'}, {id: 3, name: 'Charlie'}];
const array2 = [{id: 3, name: 'Charlie'}, {id: 4, name: 'Dave'}, {id: 5, name: 'Eve'}];
const commonIds = new Set();
array1.forEach(item => {
commonIds.add(item.id);
});
array2.forEach(item => {
if (commonIds.has(item.id)) {
commonIds.add(item.id);
}
});
console.log(commonIds); // Set {3}
这样就可以提取出来两个数组中相同属性的值,并且去重。
注意:这种方法仅适用于两个数组,如果你有更多的数组,你可以使用一个循环来遍历所有数组,并在 Set 中添加属性值。