JavaScript中好用的对象数组去重

对象数组去重

Demo数据如下:

var items=
[{
    "specItems": [{
        "id": "966480614728069122",
        "name": "精品装",
        "pid": "966480614694514690",
        "isSelected": true
    }, {
        "id": "958251983375663105",
        "name": "黑色",
        "pid": "958168337859981313",
        "isSelected": true
    }],
    "barcode": "44"
}, {
    "specItems": [{
        "id": "966480614728069122",
        "name": "精品装",
        "pid": "966480614694514690",
        "isSelected": true
    }, {
        "id": "958251983375663105",
        "name": "黑色",
        "pid": "958168337859981313",
        "isSelected": true
    }]
}, {
    "specItems": [{
        "id": "966480614728069122",
        "name": "精品装",
        "pid": "966480614694514690",
        "isSelected": true
    }, {
        "id": "958251983363080193",
        "name": "白色",
        "pid": "958168337859981313",
        "isSelected": true
    }]
}, {
    "specItems": [{
        "id": "966480614728069122",
        "name": "精品装",
        "pid": "966480614694514690",
        "isSelected": true
    }, {
        "id": "958251983363080193",
        "name": "白色",
        "pid": "958168337859981313",
        "isSelected": true
    }]
}]

去重方法(适用于js es6版本及以上):

var hash={};
items=items.reduce(function(item,next){
     hash[next.getName()]?'':hash[next.getName()]=true&&item.push(next);
    return item},[])
posted @ 2018-05-11 13:57  lianjs  阅读(164)  评论(0)    收藏  举报