您的位置:首页 > Web前端 > JavaScript

把json对象数组属性相同的进行分组,然后取值

2015-12-03 12:59 816 查看
var changes = $dg.datagrid('getRows');
var effectRow1 =[];
var map = {};


//第一个for作用,遍历所有json对象,并存储到数组中

for(i=0;i<changes.length;i++){
effectRow1["all"]=effectRow1.push(changes[i]);
//                         var a=effectRow1[i].activitiId;
//                         var key = effectRow1[i]['posRow'];
//                         map[key] = map[key] || (map[key] = []);
//                     var map=map[key].push(effectRow1[i]);
}


// 第二个for作用,

                   
for(i=0;i<effectRow1.length;i++){

//                           //把相同值的属性取出来放进key中
var key =effectRow1[i].posRow;
//                             alert(effectRow1[i]);
//                            //
map[key] = map[key] || (map[key] = []);
//把json对象进行分组处理,属性值相同的则放进一起,此时map[key]是数组
map[key].push(effectRow1[i]);

}


//第三个for作用,遍历map,取出分组后的同名字的所有数据

                    
for(var name in map){

//                          var sum=parseInt(map[name].posCol)+parseInt(map[name].lengths);
var sum=0;
//                          此时map[name]是数组类型
for(var i = 0;i < map[name].length; i++) {
var sum= parseInt(map[name][i].posCol)+parseInt(map[name][i].lengths)+sum;
}
if(sum>12){
top.$.messager.alert(name+"信息", "很抱歉,不能超过12,请检查。", 2000);
break;
}else{
//   进行相应的动作
console.log(name+':'+sum);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: