js 数组问题 合并相同的值 拼接不同的值

2024-11-29 09:56:01
推荐回答(1个)
回答1:




    
    
          var dataset =[["美国-未知-未知",3,30],["中国-河北-石家庄",50,40],["中国-上海-上海",20,10],
            ["中国-北京",60,27],["中国-广东-汕头",20,33],["中国-天津",10,3],["中国-浙江-杭州",10,3],["中国-西藏",30,3]];
        function rebuilt (data){
            var result=[];
            if(isArray(data)){
                for(var i =0;i                    var tmp = data[i];
                    for(var x = i+1;x                         var test = data[x];
                        if(tmp[1] === test[1] && tmp[2] === test[2]){
                            var arr =[];
                                arr.push(tmp[0],test[0],tmp[1],tmp[2]);
                            result.push(arr);
                            data.splice(x,1);
                        }
                    }

                }
            }
            result = result.concat(data);
            return result;
        }
        function isArray(obj){
            return Object.prototype.toString.call(obj) ==="[object Array]";
        }
        console.log(rebuilt(dataset));