zoukankan      html  css  js  c++  java
  • js json 转化

    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);
    }


    其实有些时候都走好了一半的路,因为迷茫,导致没有继续走下去,自己又受到影响又规划了另一条路,当走进去的时候发现备受困难.....
     



    
    
  • 相关阅读:
    weblogic的ssrf漏洞
    web服务器、Web中间件和Web容器的区别
    linux C判断文件是否存在
    Linux 文件锁flock 实现两个进程相互监听存活状态
    Linux 进程间通信之管道(pipe),(fifo)
    Linux 进程间通信系列之 信号
    android Binder机制(一)架构设计
    Linux 系统 文件锁 fcntl函数详解
    execlp启动android进程命令
    Linux环境编程--waitpid与fork与execlp
  • 原文地址:https://www.cnblogs.com/aiwoqu/p/4930306.html
Copyright © 2011-2022 走看看