var newtemp=[ { title: '北京市', money: '11' },
{ title: '天津市', money: '11' },
{ title: '山东省', money: '11'},
{ title: '河北省', money: '11'},
{ title: '内蒙古', money: '12' },
];
有这么一个json 串 因工作需要 需要转换成 如下
[ { money: '11', title: [ '北京市', '天津市', '山东省', '河北省' ] },
{ money: '12', title: [ '内蒙古' ] } ]
之前写好的一个json 代码如下
var json={};
for(var i=0;i<newtemp.length;i++){
var map = newtemp[i];
if(( map["money"] in json)){
var arry=json[map["money"]];
arry.push(map["title"]);
json[map["money"]]=arry;
}else{
var arr=[];
arr.push(map["title"]);
json[map["money"]]=arr;
}
}
输出结果如下:[ { '11':"[ '北京市', '天津市', '山东省', '河北省' ] "},{'12' :" [ '内蒙古'] } ]
因不符合要求 所以继续修改:
于是思想了下 在之前的代码上做修改 :
for(var i=0;i<newtemp.length;i++){
// var map = newtemp[i];
// if(jsonArray.length>0){
// // console.log("i === "+i,map,map["money"] , jsonArray.length);
// for(var f= 0 ;f<jsonArray.length;f++){
// //console.log(jsonArray,f,i)
// //console.log(json,i,f,"0");
// if(( map["money"] == jsonArray[f]["money"])){
// var arry=jsonArray[f]["province"];
// arry.push(map["title"]);
// jsonArray[f]["province"]=arry;
// }else{
//
// var arr=[];
// json={};
// arr.push(map["title"]);
// //json[map["money"]]=arr;
// json.money=map["money"];
// json.province=arr;
// jsonArray.push(json);
// }
// }
// }
// else{
// var arr=[];
// json={};
// arr.push(map["title"]);
// //json[map["money"]]=arr;
// json.money=map["money"];
// json.province=arr;
// jsonArray.push(json);
// }
//}
结果输出:[ { money: '11', province: [ '北京市', '天津市', '山东省', '河北省' ] },{ money: '12', province: [ '内蒙古', '内蒙古' ] } ]
结果发现if esle 玩不明白了 ,后来同事一提醒 :用之前写好的略加修改就能拿到想要的结果 ,感悟 有时候思想只要换一换 柳暗花明啊
代码如下
for(var i=0;i<newtemp.length;i++){
var map = newtemp[i];
if(( map["money"] in json)){
var arry=json[map["money"]];
arry.push(map["title"]);
json[map["money"]]=arry;
}else{
var arr=[];
arr.push(map["title"]);
json[map["money"]]=arr;
}
}
//上面是之前的代码 只要在修改下就能完成想要的结果;如下
var jsonarray=[];
for(var splicJson in json){
var newjson={}
newjson.money = splicJson;
newjson.title= json[splicJson];
jsonarray.push(newjson);
}
其实有些时候都走好了一半的路,因为迷茫,导致没有继续走下去,自己又受到影响又规划了另一条路,当走进去的时候发现备受困难.....