js 数组根据id去重
时间: 2023-04-02 18:04:31 浏览: 67
您好,对于这个问题,我可以回答。可以使用 Set 数据结构来去重,也可以使用 for 循环遍历数组,利用对象属性的唯一性来去重。具体实现可以参考以下代码:
1. 使用 Set 数据结构
```
let arr = [{id: 1, name: '张三'}, {id: 2, name: '李四'}, {id: 1, name: '王五'}];
let set = new Set(arr.map(item => item.id));
let result = Array.from(set).map(id => {
return arr.find(item => item.id === id);
});
console.log(result); // [{id: 1, name: '张三'}, {id: 2, name: '李四'}]
```
2. 使用对象属性的唯一性
```
let arr = [{id: 1, name: '张三'}, {id: 2, name: '李四'}, {id: 1, name: '王五'}];
let obj = {};
arr.forEach(item => {
obj[item.id] = item;
});
let result = Object.values(obj);
console.log(result); // [{id: 1, name: '张三'}, {id: 2, name: '李四'}]
```
希望能对您有所帮助。
相关问题
js对象数组根据id去重代码示例
可以使用reduce和Map来对对象数组根据id去重,代码示例如下:
```javascript
const arr = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Charlie' },
{ id: 3, name: 'David' }
];
const map = new Map();
const uniqueArr = arr.reduce((acc, cur) => {
if (!map.has(cur.id)) {
map.set(cur.id, true);
acc.push(cur);
}
return acc;
}, []);
console.log(uniqueArr);
// Output: [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'David' }]
```
请问还有什么问题吗?
js 数组使用id去重
可以使用 Set 数据结构来去重,将数组转化成 Set 后再转回数组即可。
比如,假设有一个包含多个对象的数组,每个对象都有一个唯一的 id 属性,现在需要根据 id 去重:
```js
const arr = [
{ id: 1, name: 'apple' },
{ id: 2, name: 'banana' },
{ id: 1, name: 'orange' },
{ id: 3, name: 'pear' },
{ id: 2, name: 'grape' }
];
const uniqueArr = Array.from(new Set(arr.map(item => item.id))).map(id => {
return arr.find(item => item.id === id);
});
console.log(uniqueArr); // [{ id: 1, name: 'apple' }, { id: 2, name: 'banana' }, { id: 3, name: 'pear' }]
```
上面的代码中,首先使用 `map` 方法将原数组中的每个对象的 id 属性提取出来,然后使用 Set 去重。接着,使用 `Array.from` 方法将 Set 转化成数组。最后,使用 `map` 方法遍历去重后的 id 数组,通过 `find` 方法找到原数组中对应的对象,然后返回一个新数组。这样就实现了根据 id 去重的需求。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)