var arr=[
{
'name':'浏览器1',
'百度':10,
'360' :30,
'搜狗':50
},{
'name':'浏览器2',
'百度':20,
'搜狗':50
},{
'name':'浏览器3',
'百度':30,
'360' :50,
'搜狗':50
}
];
求得结果
var arr2=[
{'百度':[10,20,30]},
{'360':[30,50]},
{'搜狗':[50,50,50]}
]
代码
var result = [];//返回的是一个数组
var json = {};//定义一个大json
arr.forEach((item)=>{
//item 是每一{}项{'name':'浏览器1','百度':10,'360' :30,'搜狗':50}
delete item.name;//删除name
for(let i in item){
//i 是 '百度'等
if(!json[i]){ //没有key时候定义value为[]
json[i] = [];
}
json[i].push(item[i])
}
})
console.log('json',json)
for(let k in json){
let js = {};
js[k]=json[k]
result.push(js);
}
console.log('result',result)
思想:
//当前数组的每一项是对象
//返回结果是数组,返回数组的length 是key的长度减去name
//返回的数组的每一项是json,json的key是原数组每一项json中key,json的value是对应值的数组集合
//数组循环 能找到每一项,每一项进行for in循环拿到 key 和value
//所以数组循环中套for in 循环
//将大的json转化为数组
网友评论