zoukankan      html  css  js  c++  java
  • javascript相关,格式转化

    比如这样的数据:

    Object {1018: "3", 40101: "727", 40102: "11032", 40201: "130", 40301: "311", 40401: "798", 40501: "978", 40901: "198", 41003: "82", 41101: "1860", 41102: "1968", 41401: "33", 41404: "86", 41501: "467", 41502: "114", 41505: "158", 41601: "22", 41706: "927", 41801: "9153", 41802: "472", 41805: "1779", 42101: "88", 42103: "6", 42201: "420", 42401: "159", 42603: "28", 42801: "7", 42901: "28731", 42905: "24"}

    转化成:

    [["1018","3"],["40101","727"],["40102","11032"],["40201","130"],["40301","311"],["40401","798"],["40501","978"],["40901","198"],["41003","82"],["41101","1860"],["41102","1968"],["41401","33"],["41404","86"],["41501","467"],["41502","114"],["41505","158"],["41601","22"],["41706","927"],["41801","9153"],["41802","472"],["41805","1779"],["42101","88"],["42103","6"],["42201","420"],["42401","159"],["42603","28"],["42801","7"],["42901","28731"],["42905","24"]]

    程序:

    function transform(obj){
    var arr = [];
    for(var item in obj){
    var tmp = [];
    tmp.push(item);
    tmp.push(obj[item]);
    arr.push(tmp);
    }
    return JSON.stringify(arr);
    }
    JSON.parse()------>用于从一个字符串中解析出json对象
    JSON.stringify()------->用于从对象中解析出json字符串

    合并相同的项:(把name相同的项合并,value相加)
    var n_arr_w=[{"code":"950_90","type":"pc","value":"3909","name":"嵌入式横幅广告"},{"code":"728_90","type":"pc","value":"1221","name":"嵌入式横幅广告"},{"code":"320_100","type":"wap","value":"1201","name":"横幅"},{"code":"320_100","type":"wap","value":"1201","name":"横幅"},{"code":"468_60","type":"pc","value":"166","name":"嵌入式通栏广告"},{"code":"300_110","type":"pc","value":"5","name":"横幅"},{"code":"300_110","type":"pc","value":"5","name":"横幅"},{"code":"336_280","type":"pc","value":"5274","name":"嵌入式矩形广告"},{"code":"320_50","type":"wap","value":"78","name":"横幅"},{"code":"300_250","type":"wap","value":"5","name":"嵌入式矩形广告"},{"code":"300_250","type":"wap","value":"5","name":"插屏"},{"code":"300_250","type":"wap","value":"5","name":"插屏"},{"code":"160_600","type":"pc","value":"495","name":"悬浮式单边对联广告"},{"code":"400_300","type":"pc","value":"1248","name":"嵌入式竖幅广告"},{"code":"1280_720","type":"app","value":"13828","name":"开屏"},{"code":"240_290","type":"app","value":"2811","name":"插屏"},{"code":"728_90","type":"app","value":"932","name":"嵌入式横幅广告"},{"code":"500_200","type":"pc","value":"11","name":"背投广告"},{"code":"300_250","type":"pc","value":"50104","name":"嵌入式矩形广告"},{"code":"300_250","type":"pc","value":"50104","name":"插屏"},{"code":"300_250","type":"pc","value":"50104","name":"插屏"},{"code":"468_60","type":"app","value":"134","name":"嵌入式通栏广告"},{"code":"320_50","type":"app","value":"50582","name":"横幅"},{"code":"120_600","type":"pc","value":"99","name":"悬浮式双边对联广告"},{"code":"300_100","type":"pc","value":"92","name":"嵌入式通栏广告"},{"code":"300_110","type":"wap","value":"57","name":"横幅"},{"code":"300_110","type":"wap","value":"57","name":"横幅"},{"code":"300_50","type":"pc","value":"87","name":"嵌入式横幅广告"},{"code":"760_90","type":"pc","value":"895","name":"嵌入式横幅广告"},{"code":"250_250","type":"pc","value":"2664","name":"嵌入式画中画广告"},{"code":"120_240","type":"pc","value":"1360","name":"嵌入式竖幅广告"},{"code":"1000_90","type":"pc","value":"2787","name":"悬浮式横幅广告"},{"code":"200_200","type":"pc","value":"1608","name":"嵌入式画中画广告"}];
    程序:
    var type_name_type={};

    for(var i in n_arr_w){
    n_arr_w[i]['value']=parseInt(n_arr_w[i]['value']);

    if( type_name_type && type_name_type[n_arr_w[i]['name']]){
    type_name_type[n_arr_w[i]['name']]['value'] +=n_arr_w[i]['value'];
    }else{
    type_name_type[n_arr_w[i]['name']]=n_arr_w[i];
    }

    }

    (注意这样写的话,程序执行之前和之后,n_arr_w的值会变化,至于什么原因,我也不太清楚)

    把code 相同的合并,value值相加:

    var pv_list=[{"code":"HN","value":"2"},{"code":"HN","value":"24"},{"code":"LN","value":"5"},{"code":"AH","value":"7"},{"code":"SD","value":"9"},{"code":"HA","value":"4"},{"code":"GZ","value":"6"}];

    程序:

    var province_lsit ={};
    for (var i in pv_list){
    if(province_lsit&&province_lsit.hasOwnProperty(pv_list[i]['code'])){
    province_lsit[pv_list[i]['code']]+=parseInt(pv_list[i]['value']);
    }else{
    province_lsit[pv_list[i]['code']]=parseInt(pv_list[i]['value']);
    }
    };

    按照值的大小,降序排列:
    var obj={"1018":"4","2003":"1","40101":"1267","40102":"12125","40201":"514","40301":"504","40401":"855","40501":"1693","40901":"549","41003":"218","41101":"3750","41102":"2930","41401":"115","41404":"191","41501":"1512","41502":"187","41504":"7","41505":"176","41601":"64","41706":"2730","41801":"35171","41802":"1349","41805":"3768","42101":"140","42103":"11","42201":"1385","42401":"461","42603":"90","42801":"21","42901":"46062","42905":"223"};
    程序:
    function sortValue(obj){    
    var arr=[];
    var sdic=Object.keys(obj).sort(function(a,b){return -(obj[a]-obj[b])});
    for(var ki in sdic){

    arr.push({code:sdic[ki],value:obj[sdic[ki]]});

    }
    return arr;
    }

    做字典映射的程序:
    /***
    **arr需要映射的数组,mediadata字典数组
    **/
    function mid_to_name(arr,mediadata){
    var new_arr=new Array();
    var i=0;
    for(var tmp in arr){
    for(var tmp2 in mediadata){
    if(arr[tmp].code==mediadata[tmp2].code){
    new_arr[i]=[mediadata[tmp2].name,parseInt(arr[tmp].value)];
    i++;
    }
    }
    }
    return new_arr;
    }


    手机端实现悬浮框,类似alert的弹出框:

    window.alert = function(name){
    var iframe = document.createElement("IFRAME");
    iframe.style.display="none";
    iframe.setAttribute("src", 'data:text/plain,');
    document.documentElement.appendChild(iframe);
    window.frames[0].window.alert(name);
    iframe.parentNode.removeChild(iframe);
    }

    比如这样的数据:

    var obj=[{"pcode":"1","pname":"黑龙江省","ccode":"1","cname":"哈尔滨市","scode":"A0501","sname":"哈尔滨新纪元"},{"pcode":"1","pname":"黑龙江省","ccode":"14","cname":"长春市","scode":"A0601","sname":"长春金达洲凯绅"},{"pcode":"3","pname":"辽宁省","ccode":"23","cname":"沈阳市","scode":"A0901","sname":"沈阳东北汽贸"}];

    转换成:

    [{"pcode":"1","pname":"黑龙江省","ccode":"1","cname":"哈尔滨市","scode":"A0501","sname":"哈尔滨新纪元"},{"pcode":"2","pname":"吉林省","ccode":"14","cname":"长春市","scode":"A0601","sname":"长春金达洲凯绅"},{"pcode":"3","pname":"辽宁省","ccode":"23","cname":"沈阳市","scode":"A0901","sname":"沈阳东北汽贸"}]

    把pcode相同的值合并

    附上一个通用的方法:

    /*
    * JSON数组去重
    * @param: [array] json Array
    * @param: [string] 唯一的key名,根据此键名进行去重
    */
    function uniqueArray(array, key){
    var result = [array[0]];
    for(var i = 1; i < array.length; i++){
    var item = array[i];
    var repeat = false;
    for (var j = 0; j < result.length; j++) {
    if (item[key] == result[j][key]) {
    repeat = true;
    break;
    }
    }
    if (!repeat) {
    result.push(item);
    }
    }
    return result;
    }


    js实现checkbox的全选和非全选:

    <div style="float: left;"><input type="checkbox" id="checkAll" onclick="checkAll(this)"/>全选</div>
    function checkAll(obj){
    if($(obj).attr("checked")){
    $(".mcheck").each(function(){
    $(this).attr("checked",true);
    });
    }else{
    $(".mcheck").each(function(){
    $(this).removeAttr("checked");
    });
    }
    }

    注意:设置每个.mcheck的全选和非全选状态,要用循环的方式!
     
     
     
     
  • 相关阅读:
    hdu 1402 大数A*B模板(FFT)
    ccpc 哈尔滨L题 LRU Algorithm
    今年得慢慢学的
    Codeforces Round #629 (Div. 3) E. Tree Queries(LCA)
    Codeforces Global Round 7 D2. Prefix-Suffix Palindrome (Hard version) -- manacher
    hdu 3068 (manacher算法)
    用Socket API建立简易tcp服务端和客户端
    Win下建立Socket时注意事项
    线段树(Segment Tree)
    Codeforces Round #643 (Div. 2)
  • 原文地址:https://www.cnblogs.com/hupengyin/p/6638297.html
Copyright © 2011-2022 走看看