js数组根据对象的键值去重
时间: 2024-01-27 09:14:22 浏览: 94
vue中对象数组去重的实现
以下是两种JavaScript数组根据对象的键值去重的方法:
1. 利用对象的键值是唯一的特性,将数组元素作为对象的键,值设为true,然后通过Object.keys()方法获取去重后的键值数组。
```javascript
function uniqByObj(array) {
let len = array.length;
let tempJson = {};
for (let i = 0; i < len; i++) {
tempJson[`${array[i]}`] = true;
}
return Object.keys(tempJson);
}
let arr = [2, 3, 4, 2, 3, 5];
let res = uniqByObj(arr);
console.log("res is ", res); // 输出:[ '2', '3', '4', '5' ]
```
2. 使用reduce()方法遍历对象数组,通过判断对象的键是否已存在来进行去重操作。
```javascript
let obj = [
{ key: "nn", age: 2 },
{ key: "name", age: "asd" },
{ key: "nn", age: 2 }
];
let object = {};
let objres = obj.reduce((item, next) => {
object[next.key] ? "" : (object[next.key] = true) && item.push(next);
return item;
}, []);
console.log("objres is ", objres); // 输出:[ { key: 'nn', age: 2 }, { key: 'name', age: 'asd' } ]
```
阅读全文