js中数组对象去重的方法

最工作中需要用到数组对象去重的方法,分享一下,希望对大家有帮助!

方法一:

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

方法二:

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

 

var arr = [{
 2       key: '01',
 3       value: '开开'
 4    }, {
 5       key: '02',
 6       value: '欣欣'
 7    }, {
 8       key: '03',
 9       value: '心心'
10    },{
11       key: '04',
12       value: '哈哈'
13    },{
14       key: '01',
15       value: '开开'
16    }];
17 
18 
19    //  方法1:利用对象访问属性的方法,判断对象中是否存在key
20    var result = [];
21    var obj = {};
      arr.forEach(v => {
        if(!obj[v.key]) {
            result.push(v)
            obj[v.key] = true
        }
      })
28    console.log(result); // [{key: "01", value: "开开"},{key: "02", value: "欣欣"},{key: "03", value: "心心"},{key: "04", value: "哈哈"}]
29 
30 
31 
32    //  方法2:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值
33       var obj = {};
34     arr = arr.reduce((array, item) => {
35       obj[item.key] ? '' : obj[item.key] = true && array.push(item);
36       return array;
37    }, []);
38    console.log(arr); // [{key: "01", value: "开开"},{key: "02", value: "欣欣"},{key: "03", value: "心心"},{key: "04", value: "哈哈"}]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值