美文网首页
数组对象的合并分组

数组对象的合并分组

作者: 大梦无痕 | 来源:发表于2019-05-29 15:45 被阅读0次

    通过某个字段去重数组对象,例如:id

              var arr = [{
                    id: 0,
                    test: "艾希"
                },
                {
                    id: 7,
                    test: "安妮"
                },
                {
                    id: 7,
                    test: "维嘉"
                },
                {
                    id: 7,
                    test: "无极"
                },
                {
                    id: 6,
                    test: "剑姬"
                },
                {
                    id: 0,
                    test: "拉克丝"
                }
            ]
    

    方法1

    let map = {};
    let mapArray = [];
    for(const i in arr) {
        let item = arr[i];
        map[item['id']] = {
            arr: (map[item['id']]?map[item['id']].arr:[]).concat([item]),
            id:item.id
        };
    }
    for(var key in map) {
        mapArray.push(map[key]);
    }
    console.log(mapArray);
    

    结果


    image.png

    方法2

            var idList = [...new Set(arr.map((e)=>{return e.id}))];
            var list = [];
            idList.forEach((e)=>{
                var item = arr.filter((res)=>{
                    return res.id==e;
                })
                list.push({
                    id:e,
                    list:item
                })
            })
            console.log(list)
    
    结果 image.png

    相关文章

      网友评论

          本文标题:数组对象的合并分组

          本文链接:https://www.haomeiwen.com/subject/hdyytctx.html