Создайте пару ключ-значение для текущего ключа и значения
В настоящее время у меня есть массив простых объектов:
data = [{ "alternative hip hop": 3 }, { "escape room": 4 }, ...]
... в которую я хотел бы превратиться в
newData = [
{ "name": "alternative hip hop", "count": 3 },
{ "name": "escape room", "count" 4 }
]
Это выполнимо с картой? Я не смог понять, как это сделать с одним.
Также приветствуются ответы от lodash
3 ответа
Предполагая, что каждый элемент в данных имеет одну пару ключ / значение, вам нужно:
data.map(obj => {
const key = Object.keys(obj)[0]; //Just get the first key we find
return {
name: key,
count: obj[key]
};
})
Я надеюсь, что я не написал это ложно на моем мобильном телефоне, но вот способ:
let newData = data.map(e => {
for(let key in e) {
return {
name: key,
count: e[key]
};
}
});
Я не знаком с 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)