js数组对象去重
时间: 2023-06-21 08:13:02 浏览: 121
可以使用 Set 数据结构来实现数组对象去重。具体实现如下:
```javascript
const arr = [
{ id: 1, name: 'Tom' },
{ id: 2, name: 'Jerry' },
{ id: 1, name: 'Tom' },
{ id: 3, name: 'Lucy' }
];
const set = new Set(arr.map(JSON.stringify));
const newArr = Array.from(set).map(JSON.parse);
console.log(newArr);
// Output: [{ id: 1, name: 'Tom' }, { id: 2, name: 'Jerry' }, { id: 3, name: 'Lucy' }]
```
上述代码中,先使用 `map` 方法将每个对象转换为字符串形式,然后将其作为 Set 的元素,这样就可以去重了。最后再将 Set 转换为数组,并使用 `map` 方法将字符串转换为对象形式即可得到去重后的数组。
相关问题
js数组对象去重保证顺序
JavaScript数组对象去重并保证顺序可以使用ES6中的Set对象和Array.from方法来实现。具体步骤如下:
1. 将原始数组转化为Set对象(Set对象中不允许有重复元素)
2. 将Set对象转化为数组(Array.from方法可以将Set对象转化为数组,且保证元素的顺序与原始数组相同)
以下是具体的代码实现:
```javascript
function unique(arr) {
return Array.from(new Set(arr));
}
```
另外,如果要保证原始数组的顺序不变,可以使用Array.prototype.filter方法结合Array.prototype.indexOf方法实现。具体步骤如下:
1. 遍历原始数组arr
2. 判断当前元素在原始数组中第一次出现的索引是否等于当前索引,如果相等,则保留当前元素,否则过滤掉当前元素。
以下是具体的代码实现:
```javascript
function unique(arr) {
return arr.filter((item, index, array) => array.indexOf(item) === index);
}
```
写一段js数组对象去重
可以使用 ES6 中的 Set 构造函数,具体实现代码如下:
let arr = [{id: 1}, {id: 2}, {id: 1}];
let newArr = Array.from(new Set(arr.map(item => item.id))).map(id => {
return arr.find(item => item.id === id);
});
阅读全文