JS模拟数据去重汇总

来源:互联网 发布:新网域名转入万网 编辑:程序博客网 时间:2024/05/19 14:01
var data = [ {    'city' : '北京',    'month' : 1,    'g4' : 1000,    'g3' : 100}, {    'city' : '北京',    'month' : 2,    'g4' : 2000,    'g3' : 200}, {    'city' : '上海',    'month' : 1,    'g4' : 3000,    'g3' : 300}, {    'city' : '上海',    'month' : 2,    'g4' : 4000,    'g3' : 400} ];var ctemp = [],     cities = [],     hash = {};for ( var i in data) {    var city = data[i].city;    ctemp.push(city);};// 两种方法得到已去重的cities,第一种效率高但占用内存空间(多一个hash)for (k = 0; k < ctemp.length; k++) {    if (!hash[ctemp[k]]) {        hash[ctemp[k]] = true;        cities.push(ctemp[k]);    }}/* * for(_i = 0;_i<ctemp.length;_i++){  *      if(cities.indexOf(ctemp[_i]) == -1){ *          cities.push(ctemp[_i]);  *      }  * } */var resaultArr = [];for ( var j in cities) {    var currCity = cities[j],        g3sum = 0,         g4sum = 0;    for ( var i in data) {        if (currCity == data[i].city) {            var g3 = data[i].g3,                 g4 = data[i].g4;            g3sum += g3;            g4sum += g4;        }        resault = ({            city : currCity,            KpiName : ({                g3Account : g3sum,                g4Account : g4sum            })        })    }    resaultArr.push(resault);}
0 0
原创粉丝点击