js 数组对象 根据id去重
时间: 2023-09-09 14:09:48 浏览: 99
可以使用`Array.filter()`和`Array.findIndex()`方法来根据id去重一个数组对象。
假设存在如下的数组对象:
```javascript
const data = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Charlie' },
{ id: 3, name: 'David' },
{ id: 2, name: 'Emily' }
];
```
可以通过以下代码实现根据id去重:
```javascript
const uniqueData = data.filter((item, index) => {
return data.findIndex(obj => obj.id === item.id) === index;
});
```
这段代码中,`Array.filter()`方法会遍历数组`data`中的每个元素,并根据条件返回一个新的数组`uniqueData`。在遍历过程中,`Array.findIndex()`方法会查找数组`data`中是否存在一个元素的id与当前元素的id相等,如果存在则返回该元素在数组中的索引,否则返回-1。如果当前元素的id在数组中的索引等于它在`data`数组中的索引,则表示该元素是第一次出现,需要保留;否则表示该元素是重复出现的,需要被过滤掉。
经过上述操作后,`uniqueData`数组中将只保留原数组中第一次出现的元素,即:
```javascript
[
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'David' }
]
```
阅读全文