数组对象去重,并找出不同的对象
时间: 2023-02-28 15:30:46 浏览: 92
要对数组中的对象去重,有几种方法:
1. 利用 Set 数据结构,因为 Set 不允许重复元素,所以可以将数组转换为 Set 然后再转回数组。
```
let arr = [...new Set(arr)];
```
2. 使用 filter 函数和 indexOf 函数,在新数组中加入第一次出现的元素,以后遇到重复元素就不加入。
```
let uniqueArr = arr.filter((item, index) => arr.indexOf(item) === index);
```
3. 使用 reduce 函数和对象键值对,将数组元素存为对象的键,如果不存在则添加。
```
let uniqueArr = arr.reduce((unique, item) => {
return unique.includes(item) ? unique : [...unique, item];
}, []);
```
以上三种方法都可以实现数组对象的去重,根据实际需要选择合适的方法。
相关问题
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 ]
es6 数组对象去重
要在ES6中对数组对象进行去重,有几种方法可以实现。
方法一是使用filter()方法和findIndex()方法。首先使用filter()方法返回一个新的数组,其中包含满足条件的唯一元素。然后使用findIndex()方法来检查新数组中是否已存在当前元素。如果不存在,则将其添加到新数组中。这种方法适用于简单的对象数组去重操作。
方法二是使用reduce()方法。reduce()方法可以对数组进行迭代,并返回一个累积值。在这种情况下,我们可以使用reduce()方法来遍历数组并构建一个新数组,其中没有重复的元素。可以通过检查每个元素是否在累积值中出现来实现去重。
另外,还可以使用ES6中新增的Set数据结构来进行去重。Set是一种值的集合,它只能存储唯一的值。可以将数组转换为Set,然后再将Set转换回数组。这样就可以去除重复的元素。
下面是一个示例代码,演示了如何使用reduce()方法实现数组对象去重:
```javascript
let person = [
{id: 0, name: "小明"},
{id: 1, name: "小张"},
{id: 2, name: "小李"},
{id: 3, name: "小孙"},
{id: 1, name: "小周"},
{id: 2, name: "小陈"},
];
let hasObj = {};
person = person.reduce((cur, next) => {
hasObj[next.id ? "" : (hasObj[next.id = true && cur.push(next));
return cur;
}, []);
console.log(person);
// 输出: [{"id": 0,"name": "小明"}, {"id": 1,"name": "小张"}, {"id": 2,"name": "小李"}, {"id": 3,"name": "小孙"}]
```
以上是几种常用的方法来实现ES6数组对象去重的方式。可以根据具体的需求选择其中适合的方法进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>