// 示例代码:JS JSON数组去重
// 定义一个包含重复元素的JSON数组
const jsonArray = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 1, name: 'Alice' }, // 重复项
{ id: 3, name: 'Charlie' }
];
// 方法一:使用Set和map进行去重(基于唯一键值,如id)
function removeDuplicates(arr, key) {
const unique = {};
arr.forEach(item => {
unique[item[key]] = item;
});
return Object.values(unique);
}
const uniqueArray = removeDuplicates(jsonArray, 'id');
console.log(uniqueArray);
// 输出: [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' } ]
// 方法二:使用filter和findIndex进行去重(基于整个对象的唯一性)
function removeDuplicateObjects(arr) {
return arr.filter((item, index, self) =>
index === self.findIndex((t) => (
t.id === item.id && t.name === item.name
))
);
}
const uniqueArray2 = removeDuplicateObjects(jsonArray);
console.log(uniqueArray2);
// 输出: [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, { id: 3, name: 'Charlie' } ]
removeDuplicates
函数,利用对象unique
存储唯一的键值对(如id
),最后返回对象的值。这种方法适用于有唯一标识符(如id
)的情况。removeDuplicateObjects
函数,使用filter
和findIndex
来确保每个对象在整个数组中是唯一的。这种方法适用于没有唯一标识符的情况,但会比较整个对象的所有属性。这两种方法都可以有效地去除JSON数组中的重复项。
上一篇:js range
下一篇:js 数组 findindex
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站