用javascript對(duì)一個(gè)json數(shù)組深度賦值示例

2021-08-20 16:14 更新

用javascript對(duì)一個(gè)json數(shù)組深度賦值

代碼如下所示:

<!DOCTYPE HTML> 
<html> 
<head> 
<title>test1</title> 
</head> 
<body> 
<script> 
var arr={ 
"name":"zhansan", 
"age":23, 
"address":{ 
"city":"beijing", 
"gas":{ 
"gasSheet":"氣態(tài)流出物月報(bào)", 
"H_adjust":1 
}, 
"time":{ 
"duration":31 
} 
}, 
"units":{"title":"function"} 
} 
function show(obj){ 
var tmp={}; 
for(var i in obj){ 
if(obj[i]=="object"){ 
<span style="color:#ff0000;">tmp[i]=show(obj[i]);</span> 
} 
else{ 
<span style="color:#ff0000;">tmp[i]=obj[i]</span> 
} 
} 
return tmp; 
} 

var result=show(arr); 
console.log(result);
</script> 
</body> 
</html>
</pre><p></p><p>利用遞歸思想,其中注意賦值語句</p><p>可用于不同的環(huán)境</p><p></p><pre>

如何將一個(gè)jSON對(duì)象賦值給一個(gè)jSON數(shù)組

假設(shè)其中jSON對(duì)象是var kpis = {"A": [1,2,3,4,5],"B": [ 2,3,4,5,6]},  jSON 數(shù)組是var series =  [{name:null,data:null},  {name:null,data:null}]

>>>第一種方法:

[javascript] view plain copy
var index=0;  
for( var tests in kpis){   
     series[index].name=tests;   
     series[index].data=kpis[tests];  
}

點(diǎn)評(píng):第一種方法對(duì)于超過兩個(gè)名稱/值對(duì)的情況不適用,只能手動(dòng)增加jSON數(shù)組的長度,比較麻煩。經(jīng)過boss的指導(dǎo),有了第二種方法。


>>>第二種方法:

[html] view plain copy
series=[];  
for(var tests in kpis){  
     //定義一個(gè)新的jSON對(duì)象,改變成jSON數(shù)組中jSON數(shù)據(jù)的格式  
     var json = {name:tests, data:kpis[tests]};  
     //通過數(shù)組的push()方法向數(shù)組中增加jSON數(shù)據(jù)  
     series.push(json);  
} 

點(diǎn)評(píng):第二種方法,在遍歷kpis這個(gè)jSON對(duì)象的時(shí)候,生成新的格式的jSON對(duì)象,不斷push到數(shù)組中,這樣就達(dá)到了目的,而且即使是有名稱/值對(duì)也不怕,通用性增強(qiáng)。

所以推薦第二種方法。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)