关于js 对象数组去重的方法整理

2019-04-05  本文已影响0人  whypretender

方法一:

采用对象访问属性的方法,判断属性值是否存在,如果不存在就添加。

方法二:

采用数组中的reduce方法,遍历数组,也是通过对象访问属性的方法。

关于reduce语法:

array.reduce(function(total, currentValue, currentIndex, arr), initialValue)

参数

参数描述

function(total,currentValue, index,arr)必需。用于执行每个数组元素的函数。

函数参数:

参数描述

total必需。初始值, 或者计算结束后的返回值。

currentValue必需。当前元素

currentIndex可选。当前元素的索引

arr可选。当前元素所属的数组对象。

initialValue可选。传递给函数的初始值

例子:

var arr =

[{ key: '1', value: 'aa'},

{ key: '2', value: 'bb' },

{ key: '3', value: 'cc'},

{key: '4',value: 'dd' },

{key: '1',value: 'aa'}];

方法一:利用对象访问属性的方法,判断对象中是否存在key

var result = [];

var obj = {};

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

    if(!obj[arr[i].key]){

        result.push(arr[i]);

         obj[arr[i].key] =true;

    }

}

console.log(result);

 方法二:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值

var obj = {};

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

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

          return item; 

}, []); //设置item默认类型为数组,并且初始值为空的数组

console.log(arr);

上一篇下一篇

猜你喜欢

热点阅读