求助各位大神,js如何将下面的数组根据前面3个元素进行分类组装!!!

就是把var array =
[
[0,1,"src",{"datatime":201705230201}]
[1,1,"dst",{"datatime":201705230205}]
[0,1,"src",{"datatime":201705230202}]
[1,1,"dst",{"datatime":201705230206}]
[0,1,"dst",{"datatime":201705230204}]
[1,1,"src",{"datatime":201705230207}]
[0,1,"dst",{"datatime":201705230203}]
[1,1,"src",{"datatime":201705230208}]
]
变成这样的
[
[0,1,"src",[{"datatime":201705230201},{"datatime":201705230202}]]
[0,1,"dst",[{"datatime":201705230203},{"datatime":201705230204}]]
[1,1,"dst",[{"datatime":201705230205},{"datatime":201705230206}]]
[1,1,"src",[{"datatime":201705230207},{"datatime":201705230208}]]
]

var array =
[
[0,1,"src",{"datatime":201705230201}],
[1,1,"dst",{"datatime":201705230205}],
[0,1,"src",{"datatime":201705230202}],
[1,1,"dst",{"datatime":201705230206}],
[0,1,"dst",{"datatime":201705230204}],
[1,1,"src",{"datatime":201705230207}],
[0,1,"dst",{"datatime":201705230203}],
[1,1,"src",{"datatime":201705230208}]
];

var result = [], tmp = {};
for(var i=0;i<array.length;i++){
    var ai = array[i];
    var key = "";
    for(var j=0;j<3;j++){
        key += ai[j];
    }
    if(!tmp[key]){
        var arr = [];
        for(var j=0;j<3;j++){
            arr.push(ai[j]);
        }
        arr.push([ai[3]]);
        tmp[key] = arr;
    }else{
        var dt = tmp[key][3];
        dt.push(ai[3]);
    }
}
for(var p in tmp){
    result.push(tmp[p]);
}
array = result;
console.log(array);

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网