我目前有一系列简单的对象:
data = [{ "alternative hip hop": 3 }, { "escape room": 4 }, ...]
...我想转变为
newData = [
{ "name": "alternative hip hop", "count": 3 },
{ "name": "escape room", "count" 4 }
]
这可以用地图吗?我没有弄清楚如何用一个人来解决这个问题。
欢迎lodash回复
答案 0 :(得分:4)
假设数据中的每个项目都有一个键/值对,您需要:
data.map(obj => {
const key = Object.keys(obj)[0]; //Just get the first key we find
return {
name: key,
count: obj[key]
};
})
答案 1 :(得分:1)
我希望我没有在我的手机上写错,但这是一种方式:
let newData = data.map(e => {
for(let key in e) {
return {
name: key,
count: e[key]
};
}
});
答案 2 :(得分:0)
我不熟悉loadsh,但使用javascript你可以执行以下操作:
var data = [{ "alternative hip hop": 3 }, { "escape room": 4 }]
var newData = [];
data.forEach((item)=>{ //loop over the array
Object.keys(item) //get the object keys
.map((keyName)=>{ //loop over each key
newData.push({name:keyName, count:item[keyName]}) //insert it into the new array
})
})
console.log(newData)