为当前键和值创建键值对

时间:2017-11-13 22:26:30

标签: javascript lodash key-value

我目前有一系列简单的对象:

data = [{ "alternative hip hop": 3 }, { "escape room": 4 }, ...]

...我想转变为

newData = [
    { "name": "alternative hip hop", "count": 3 },
    { "name": "escape room", "count" 4 }
]

这可以用地图吗?我没有弄清楚如何用一个人来解决这个问题。

欢迎lodash回复

3 个答案:

答案 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)