把数组中相同id的项放到一个数组中

发布时间 2023-10-20 14:33:09作者: 奔向太阳的向日葵
    var arr = [{
        'id': '1001 ',
        'name': '值1',
        'value': '111'
    }, {
        'id': '1001 ',
        'name': '值1',
        'value': '11111'
    }, {
        'id': '1002 ',
        'name': '值2',
        'value': '25462'
    }, {
        'id': '1002 ',
        'name': '值2',
        'value': '23131'
    }, {
        'id': '1002 ',
        'name': '值2',
        'value': '2315432'
    }, {
        'id': '1003 ',
        'name': '值3',
        'value': '333333'
    }];

    var map = {},
        dest = [];
    for (var i = 0; i < arr.length; i++) {
        var ai = arr[i];
        if (!map[ai.id]) {
            dest.push({
                id: ai.id,
                name: ai.name,
                data: [ai]
            });
            map[ai.id] = ai;
        } else {
            for (var j = 0; j < dest.length; j++) {
                var dj = dest[j];
                if (dj.id == ai.id) {
                    dj.data.push(ai);
                    break;
                }
            }
        }
    }

    console.log(dest);