js对象数组去重的方法

 时间:2026-02-14 04:55:16

1、第一种:借助于函数reduce实现某个属性的去重。

1、代码如下所示:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>json对象数组去重</title>

</head>

<body>

</body>

<script type="text/javascript">

var arrays = [

{"id":1,"name":"李四1"},

{"id":2,"name":"李四"},

{"id":2,"name":"李四"},

{"id":1,"name":"李四1"},

{"id":5,"name":"李四5"},

];

//第一种去重,根据某一个属性是否重复

var obj = {};

arrays = arrays.reduce(function(item, next) {

      obj[next.id] ? '' : obj[next.id] = true && item.push(next);

      return item;

   }, []);

//将内容输出到浏览器控制台

for(var i =0; i<arrays.length; i++){

console.log(arrays[i])

}

</script>

</html>

2、开发谷歌浏览器测试结果如下。

实现根据id去重。

js对象数组去重的方法

js对象数组去重的方法

2、第二种:借助于for循环实现某个属性的去重。

1、具体代码如下所示:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>json对象数组去重for</title>

</head>

<body>

</body>

<script type="text/javascript">

var arrays = [

{"id":1,"name":"李四1"},

{"id":2,"name":"李四"},

{"id":2,"name":"李四"},

{"id":1,"name":"李四1"},

{"id":5,"name":"李四5"},

];

//第一种去重,根据某一个属性是否重复

var result = [];

   var obj = {};

   for(var i =0; i<arrays.length; i++){

      if(!obj[arrays[i].id]){

         result.push(arrays[i]);

         obj[arrays[i].id] = true;

      }

   }

//将内容输出到浏览器控制台

for(var i =0; i<result.length; i++){

console.log(result[i])

}

</script>

</html>

2、打开各个浏览器测试结果同上。

js对象数组去重的方法

3、第三种:借助于for实现所有属性值相同的情况下去重。

1、具体代码如下所示:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>json对象(对象的所有属性相同才能认为相同)数组去重for</title>

</head>

<body>

</body>

<script type="text/javascript">

var arrays = [

{"id":1,"name":"李四1"},

{"id":2,"name":"李四1"},

{"id":2,"name":"李四"},

{"id":1,"name":"李四1"},

{"id":5,"name":"李四5"},

];

//对象的所有属性相同才能认为相同

var result = [];

   var obj = [];

   var str;

   for(var i =0; i<arrays.length; i++){

    str = JSON.stringify(arrays[i]);

      if(obj.indexOf(str) == -1){

         result.push(arrays[i]);

         obj.push(str);

      }

   }

   

//将内容输出到浏览器控制台

for(var i =0; i<result.length; i++){

console.log(result[i])

}

</script>

</html>

2、开发谷歌浏览器测试结果如下。

实现根据id+name+...去重。

js对象数组去重的方法

js对象数组去重的方法

4、第四种:

1、具体代码如下所示:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>json对象(对象的所有属性相同才能认为相同)reduce</title>

</head>

<body>

</body>

<script type="text/javascript">

var arrays = [

{"id":1,"name":"李四1"},

{"id":2,"name":"李四1"},

{"id":2,"name":"李四"},

{"id":1,"name":"李四1"},

{"id":5,"name":"李四5"},

];

//对象的所有属性相同才能认为相同

   var obj = [];

   var str;

arrays = arrays.reduce(function(item, next) {

str = JSON.stringify(next);

   obj.indexOf(str) == -1 ? item.push(next) && obj.push(str) : '' ;

   return item;

  }, []);

   

//将内容输出到浏览器控制台

for(var i =0; i<arrays.length; i++){

console.log(arrays[i])

}

</script>

</html>

2、测试同上所示。

js对象数组去重的方法

1、第一种:借助于reduce函数实现去重。

1、具体代码如下所示:

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>二维数组去重reduce</title>

</head>

<body>

</body>

<script type="text/javascript">

var arrays = [

["id1","name李四1"],

["id2","name李四1"],

["id2","name李四"],

["id1","name李四1"],

["id5","name李四5"]

];

//对象的所有属性相同才能认为相同

   var obj = [];

   var str;

arrays = arrays.reduce(function(item, next) {

str = next.toString();

   obj.indexOf(str) == -1 ? item.push(next) && obj.push(str) : '' ;

   return item;

  }, []);

   

//将内容输出到浏览器控制台

for(var i =0; i<arrays.length; i++){

console.log(arrays[i].toString())

}

</script>

</html>

2、开发谷歌浏览器测试结果如下。

实现二维数组元素全部相同去重。

js对象数组去重的方法

js对象数组去重的方法

2、其它情况可以参考json数组的去重逻辑

  • 选择何时通知你有关计算机更改的消息?
  • Windows Server 2012 R2设置用户账户锁定时间
  • linux设置网卡开机启动
  • 如何解决win10上无法打开这个应用
  • IIS的应用程序池如何使用
  • 热门搜索
    合肥到黄山旅游攻略 绵阳附近旅游景点 西宁旅游包车 上海到普陀山旅游攻略 永嘉旅游景点大全 日本旅游购物 蒙特利尔旅游 内蒙古旅游景点地图 曼谷芭提雅旅游攻略 杭州旅游景点介绍