jq/js 实现多个json中键名相同的键值组合


jq实现多个json中键名相同的键值组合

function demo1(){
           //数组中可以有任意多个json对象
            var json = [
                          {
                            "text":"text"
                          },
                          {
                          "text":"文本"
                          },
                         {
                          "text":"Texto"
                          }
                        ]
            //存放总结果
            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);
            }
            //key
            var html='';
            //CH
            var btml='';
            //EN
            var ctml='';
            //PT
            var dtml='';
            //遍历key
            for(var c=0;c<resultArr.length;c++){
                // console.log(resultArr[c].name);
                html+='<div>'+resultArr[c].name+'</div>';
                // console.log(resultArr[c].data[0])
            }
            //遍历CH
            for(var c=0;c<resultArr.length;c++){
                // console.log(resultArr[c].name);
                html+='<div>'+resultArr[c].data[0]+'</div>'
                // console.log(resultArr[c].data[0])
            }
            //遍历EN
            for(var c=0;c<resultArr.length;c++){
                // console.log(resultArr[c].name);
                html+='<div>'+resultArr[c].data[1]+'</div>'
                // console.log(resultArr[c].data[0])
            }
            //遍历PT
            for(var c=0;c<resultArr.length;c++){
                // console.log(resultArr[c].name);
                html+='<div>'+resultArr[c].data[2]+'</div>'
                // console.log(resultArr[c].data[0])
            }
            document.getElementById('abc').innerHTML=html
            document.getElementById('bbc').innerHTML=btml
            document.getElementById('cbc').innerHTML=ctml
            document.getElementById('cbc').innerHTML=dtml
            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) //打印结果

 

posted @ 2021-10-09 17:38  矢去梦想的乘客  阅读(493)  评论(0)    收藏  举报