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