js对象数组去重的方法

2025-11-09 20:32:23

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数组的去重逻辑

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢