Преобразовать вид объекта
Всем доброго времени суток, вопрос наверное очень часто встречающийся, но подходящего ответа я не нашел, увы( хочу привести объект к такому виду
actions = {
add: 1,
edit: 2
};
Исходный вид объекта:
actions = {
0: { id: 1, name: 'add', colorId: 3},
1: { id: 2, name: 'edit', , colorId: 5}
};
Делал так:
actions.map((action) => {
let actionName = action.name;
let actionId = action.id
return {
actionName: actionId
}
});
но так не работает
Ответы (1 шт):
Автор решения: entithat
→ Ссылка
let result = {};
let actions = {
0: { id: 1, name: 'add', colorId: 3},
1: { id: 2, name: 'edit', colorId: 5}
};
for (let action of Object.values(actions)) {
result[action.name] = action.id;
}
console.log(result);
Либо как-то так (упрощением уже существующего объекта):
let actions = {
0: { id: 1, name: 'add', colorId: 3},
1: { id: 2, name: 'edit', colorId: 5}
};
Object.keys(actions).map(key => {
actions[actions[key].name] = actions[key].id;
delete actions[key];
});
console.log(actions);