es6使用set对数组对象去重
时间: 2023-11-01 17:59:38 浏览: 119
ES6中的Set对象可以用于数组去重。Set对象是一种集合数据结构,它只能存储唯一的值,所以当我们将一个数组转换为Set对象时,重复的元素会被自动去除。
以下是使用Set对象对数组对象去重的示例代码:
```javascript
const arr = [{id: 1, name: 'apple'}, {id: 2, name: 'banana'}, {id: 1, name: 'apple'}];
const uniqueArr = [...new Set(arr.map(item => JSON.stringify(item)))].map(item => JSON.parse(item));
console.log(uniqueArr); // [{id: 1, name: "apple"}, {id: 2, name: "banana"}]
```
在上面的代码中,我们首先通过`map()`方法将数组对象转换为字符串形式,然后使用Set对象去重,并将结果转换回对象形式。最后,我们使用扩展运算符`...`将Set对象转换为数组。
请注意,我们需要使用`JSON.stringify()`和`JSON.parse()`方法将对象转换为字符串和反转换回对象。这是因为Set对象只能存储原始值,而不能存储引用类型的值。
相关问题
数组对象去重 set
Set是ES6中新增的一种数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。Set可以用来对数组对象进行去重。
下面是一个示例代码:
```
const arr = [{ id: 1, name: 'apple' }, { id: 2, name: 'banana' }, { id: 1, name: 'apple' }];
const set = new Set(arr.map(JSON.stringify));
const uniqueArr = Array.from(set).map(JSON.parse);
console.log(uniqueArr);
```
首先,我们使用map方法将数组中的每个元素转化为字符串,然后使用Set去重,最后再通过map方法将字符串转化为对象。这样就能保留原数组中每个对象的所有属性,并且去重后的数组中不会出现重复的对象。
需要注意的是,Set去重时是根据每个元素的值进行去重,而不是根据每个元素的引用地址进行去重。因此,如果数组中有两个引用地址不同但是值相同的对象,Set去重并不会将它们视为重复元素。
vue 数组对象去重
要在Vue中对数组对象进行去重,可以使用以下方法:
引用:一般的数组去重可以直接用 new Set() 方法即可,但是数组对象的话,比较复杂,不能直接用,我们可以采取间接的方法来去重。
引用:利用双for循环,然后splice去重。可以定义一个函数unique(arr),通过两个for循环来遍历数组,如果发现相同的元素,则使用splice方法删除一个元素,并将下标递减。最后返回去重后的数组。
引用:利用ES6的Set去重。可以定义一个函数unique(arr),通过将数组转换为Set,然后再将Set转换为数组,即可实现去重。
在Vue中,你可以选择其中一种方法来对数组对象进行去重操作。例如,使用双for循环的方法:
```
function unique(arr) {
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
if (arr[i == arr[j]) {
arr.splice(j, 1);
j--;
}
}
}
return arr;
}
```
这个函数将接受一个数组作为参数,并返回去重后的数组。你可以调用这个函数来实现Vue中的数组对象去重操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [数组对象去重(vue)](https://blog.csdn.net/m0_58259728/article/details/120197737)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [vue数组去重 数组对象去重](https://blog.csdn.net/z1010017573/article/details/110918943)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文