1. 程式人生 > >jq/js 實現多個json中鍵名相同的鍵值組合

jq/js 實現多個json中鍵名相同的鍵值組合

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”]}
]