删除数组中对象中相同值并返回
时间: 2023-08-21 16:05:03 浏览: 94
您可以使用 JavaScript 中的 `filter()` 和 `reduce()` 方法来实现这个功能。具体实现步骤如下:
1. 使用 `filter()` 方法过滤掉数组中与给定值相同的对象。
2. 使用 `reduce()` 方法将剩余的对象合并为一个数组。
下面是示例代码:
```javascript
const arr = [
{ id: 1, name: "John" },
{ id: 2, name: "Mike" },
{ id: 3, name: "John" },
{ id: 4, name: "Alice" }
];
const removeDuplicates = (arr, prop) => {
return arr.filter((obj, index, self) =>
index === self.findIndex((t) => t[prop] === obj[prop])
);
};
const result = removeDuplicates(arr, "name");
console.log(result);
// Output: [{ id: 1, name: "John" }, { id: 2, name: "Mike" }, { id: 4, name: "Alice" }]
```
在上面的代码中,`removeDuplicates()` 函数接收两个参数:数组和要用于比较的属性名称。在本例中,我们使用 `name` 属性来比较对象是否相同。`filter()` 方法返回一个新数组,其中包含与给定值不同的所有对象。`self.findIndex()` 方法返回第一个满足给定条件的元素的索引。最后,使用 `reduce()` 方法将过滤后的对象合并为一个数组。
希望这可以帮助您解决问题!
阅读全文