用js写一个数组对象去重方法
时间: 2023-12-09 07:53:07 浏览: 73
以下是一种常见的去重方法:
```javascript
function unique(arr) {
var obj = {};
var result = [];
for (var i = 0; i < arr.length; i++) {
if (!obj[arr[i]]) {
obj[arr[i]] = true;
result.push(arr[i]);
}
}
return result;
}
```
使用方式:
```javascript
var arr = [1, 1, 2, 3, 3, 3, 4, 5, 5];
var result = unique(arr);
console.log(result); // [1, 2, 3, 4, 5]
```
该方法使用一个对象来记录数组中出现过的元素,遇到重复元素就跳过,最后返回去重后的结果数组。
相关问题
帮我用js写一段数组对象去重的方法
当然可以!以下是一段用 JavaScript 实现数组对象去重的方法:
```javascript
function uniqueArrayObjects(arr) {
const seen = new Set();
return arr.filter(item => {
const serialized = JSON.stringify(item);
if (seen.has(serialized)) {
return false;
}
seen.add(serialized);
return true;
});
}
```
这个方法会接受一个数组对象作为参数,然后返回一个去重后的新数组对象。它的原理是使用了 ES6 中的 Set 数据结构来存储已经出现过的对象,然后通过 JSON.stringify 将每个对象序列化成字符串来进行比较。如果已经出现过,就过滤掉,否则就加入 Set 中并保留在新数组对象中。
js写一个数组对象去重
var arr = [{name: 'Tom', age: 18}, {name: 'John', age: 20}, {name: 'Tom', age: 18}];
var result = arr.reduce(function (unique, item) {
var key = item.name + '_' + item.age;
if (!unique[key]) {
unique[key] = item;
}
return unique;
}, {});
var newArr = Object.values(result);
console.log(newArr);
阅读全文