jq/js 實現多個json中鍵名相同的鍵值組合
阿新 • • 發佈:2019-02-07
jq實現多個json中鍵名相同的鍵值組合
//陣列中可以有任意多個json物件
var json = [
{
高壓2:"120",
低壓3:null,
低壓2:"120"
},
{
高壓2:"130",
低壓3:null,
低壓2:"100"
}]
//存放總結果
var resultArr = [];
//存放鍵名陣列
var keynames = [];
for(var keyname in json[0]){
keynames.push(keyname)
}
//遍歷所有的鍵名
for(var i = 0 ; i < keynames.length ; i++){
var tempJson = {};
tempJson.name = keynames[i];
var dataArr = [];
//遍歷存放json的陣列
$.each(json,function(index,value){
//遍歷json中的每一項
for(var key in value){
//如果鍵名一樣那麼就把其鍵值儲存到暫時陣列中
if(key === tempJson.name){
dataArr.push(value[key])
}
}
})
tempJson.data = dataArr;
resultArr.push(tempJson);
}
console.log(resultArr) //列印結果
js實現多個json中鍵名相同的鍵值組合
//陣列中可以有任意多個json物件
let json = [
{
高壓2:"120",
低壓3:null,
低壓2:"120"
},
{
高壓2:"130",
低壓3:null,
低壓2:"100"
}]
//存放總結果
let resultArr = [];
//存放鍵名陣列
let keynames = Object.keys(json[0]);
//遍歷所有的鍵名
for(let i = 0 ; i < keynames.length ; i++){
let tempJson = {};
tempJson.name = keynames[i];
let dataArr = [];
//遍歷存放json的陣列
for(let j = 0; j < json.length ; j++){
let value = json[j];
//遍歷json中的每一項
for(let key in value){
//如果鍵名一樣那麼就把其鍵值儲存到暫時陣列中
if(key === tempJson.name){
dataArr.push(value[key])
}
}
}
tempJson.data = dataArr;
resultArr.push(tempJson);
}
console.log(resultArr) //列印結果
ps: 以上的列印結果均為:
[
{“name”:”高壓2”,”data”:[“120”,”130”]},
{“name”:”低壓3”,”data”:[null,null]},
{“name”:”低壓2”,”data”:[“120”,”100”]}
]