js filter数组对象去重
时间: 2023-08-24 22:07:19 浏览: 124
你可以使用`filter`方法和`indexOf`来过滤数组对象中的重复项。具体步骤如下:
1. 使用`filter`方法迭代数组对象。
2. 在`filter`的回调函数中,使用`indexOf`方法检查当前项在数组中的索引位置。
3. 如果当前项的索引与`indexOf`的返回值相同,则表示当前项是第一次出现,保留该项。
4. 最后返回过滤后的数组。
以下是一个示例代码:
```javascript
let arr = [
{ id: 1, name: 'Apple' },
{ id: 2, name: 'Banana' },
{ id: 1, name: 'Apple' },
{ id: 3, name: 'Orange' }
];
let uniqueArr = arr.filter((item, index) => {
return arr.findIndex(obj => obj.id === item.id) === index;
});
console.log(uniqueArr);
```
输出结果为:
```
[
{ id: 1, name: 'Apple' },
{ id: 2, name: 'Banana' },
{ id: 3, name: 'Orange' }
]
```
这样就实现了对数组对象的去重。希望能对你有所帮助!如果有任何问题,请随时问我。
相关问题
js数组对象去重方法
JavaScript中有多种方法可以对数组进行去重操作,以下是其中的一些常见方法:
1. **Set** 对象:Set是一个特殊的内置对象,它只允许存储唯一的值(包括原始值和Object)。你可以将数组转换成Set,然后再转回数组,即可实现去重。
```javascript
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [...new Set(arr)];
```
2. **filter() + includes()**:通过遍历数组,检查每个元素是否不在新的数组中,实现去重。
```javascript
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = arr.filter((item, index, self) => {
return self.indexOf(item) === index;
});
```
3. **reduce()**:利用reduce方法将数组变为单个值,并基于已存在的值决定元素是否应添加到结果数组。
```javascript
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = arr.reduce((prev, curr) => prev.includes(curr) ? prev : [...prev, curr], []);
```
4. **双重循环**:简单的双层for循环,外层遍历数组,内层判断当前元素是否已经存在于新数组中。
```javascript
let arr = [1, 2, 2, 3, 4, 4, 5];
let uniqueArr = [];
for (let i = 0; i < arr.length; i++) {
if (!uniqueArr.includes(arr[i])) {
uniqueArr.push(arr[i]);
}
}
```
es6 js数组对象去重
在使用ES6的方法去重数组对象时,可以采用两种方法。方法一是使用filter()和findIndex()函数的组合。通过filter()函数筛选出数组中的每个元素,然后使用findIndex()函数来检查该元素是否在数组中的其他位置有重复。如果没有重复,则保留该元素。方法二是使用reduce()函数进行去重。reduce()函数可以通过遍历数组来生成一个新的数组,其中不包含重复的元素。这两种方法都可以有效地实现数组对象的去重操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [JavaScript数组去重—ES6的两种方式](https://blog.csdn.net/FE_dev/article/details/78110153)[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%"]
- *3* [【ES6】es6数组中对象去重,数组对象去重方法总结---filter()与reduce()实践](https://blog.csdn.net/weixin_42960907/article/details/123202275)[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 ]
阅读全文