Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

js json数组去重

作者:__Man︶ㄣ   发布日期:2025-09-17   浏览:39

// 示例代码: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' } ]

解释说明:

  1. 方法一:通过removeDuplicates函数,利用对象unique存储唯一的键值对(如id),最后返回对象的值。这种方法适用于有唯一标识符(如id)的情况。
  2. 方法二:通过removeDuplicateObjects函数,使用filterfindIndex来确保每个对象在整个数组中是唯一的。这种方法适用于没有唯一标识符的情况,但会比较整个对象的所有属性。

这两种方法都可以有效地去除JSON数组中的重复项。

上一篇:js range

下一篇:js 数组 findindex

大家都在看

js 数组对象排序

js 数组删掉第一个值

js fill

js 数组连接

js json数组

js 数组复制

js 复制数组

js 数组拷贝

js 对象数组合并

js 对象转数组

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站