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

方法一:

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

方法二:

采用数组中的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);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转载:在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总...
    七色烟火阅读 8,485评论 0 3
  • Array -MDNwindow.Array 全局对象(也是函数)基本用法:var a = Array(3) /...
    半斋阅读 3,021评论 0 0
  • SwiftDay011.MySwiftimport UIKitprintln("Hello Swift!")var...
    smile丽语阅读 9,242评论 0 6
  • 最近消化不好,有点便秘,见女儿如厕成果丰硕,心生羡慕。 MM:妈妈最近肚子好难受啊,里面装满垃圾和残渣。 EE:妈...
    凤舞九天007阅读 1,378评论 0 0
  • 路虎揽胜过来做保养 检查的时候发现后刹车片薄了 建议客户更换 但是客户不想换 要看一下 拆轮检查 还说看不到 ...
    京心达白金阅读 773评论 0 0