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的全选和非全选状态,要用循环的方式!
 
 
 
 
原文地址:https://www.cnblogs.com/hupengyin/p/6638297.html