js 数组对象去重map
时间: 2023-10-10 09:14:20 浏览: 82
要在JavaScript中对数组对象进行去重并使用Map,可以使用以下方法:
方法一:使用Map数据结构来去重数组,遍历数组的每一个元素,将元素作为key存储到Map中。由于Map中不允许重复的key值,最终得到的就是去重后的结果。具体实现如下:
```javascript
function unique(arr) {
let map = new Map();
let res = [];
for (let i = 0; i < arr.length; i++) {
if (map.has(arr[i])) {
map.set(arr[i], true);
} else {
map.set(arr[i], false);
res.push(arr[i]);
}
}
return res;
}
```
方法二:使用双重for循环来遍历数组,比较每一个元素的id值,如果存在相同的id值,则使用splice方法删除重复元素。具体实现如下:
```javascript
function deweight() {
for (let i = 0; i < this.arr.length - 1; i++) {
for (let j = i + 1; j < this.arr.length; j++) {
if (this.arr[i].id == this.arr[j].id) {
this.arr.splice(j, 1);
j--;
}
}
}
console.log(this.arr);
}
```
方法三:与方法二类似,使用for循环遍历数组,并使用一个对象来记录已经出现过的id值,如果id值不存在于对象中,则将其添加到新数组中。具体实现如下:
```javascript
function deweight() {
let newArr = [];
let obj = {};
for (var i = 0; i < this.arr.length; i++) {
if (!obj[this.arr[i].id]) {
newArr.push(this.arr[i]);
obj[this.arr[i].id = true;
}
}
console.log(newArr);
}
```
以上就是三种使用Map去重数组对象的方法。你可以根据具体需求选择其中一种方法来使用。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [数组去重的几种方法](https://blog.csdn.net/m0_72838183/article/details/127120806)[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* [Js数组对象去重的几种方法](https://blog.csdn.net/m0_59381867/article/details/120725031)[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 ]