JavaScript - массив, объект - Как я могу упростить этот код - PullRequest
0 голосов
/ 25 января 2019

Как мне упростить этот код?Я думаю, что это может быть лучший способ рефакторинга.

const aa = ['red', 'yellow', 'blue']
const bb = { first: 0, second: 1, third: 2 }
const cc = { ...bb }

cc.first = aa[cc.first]
cc.second = aa[cc.second]
cc.third = aa[cc.third]

Ответы [ 2 ]

0 голосов
/ 25 января 2019

Вы можете использовать .reduce() и Object.entries() методы:

const aa = ['red', 'yellow', 'blue']
const bb = { first: 0, second: 1, third: 2 }

const cc = Object.entries(bb)
                 .reduce((r, [k, i]) => (r[k] = aa[i], r), {});

console.log(cc);
0 голосов
/ 25 января 2019

Это решение, которое все еще работает после добавления или удаления элемента из aa или bb, без необходимости изменять ваш код.

const aa = ['red', 'yellow', 'blue']
const bb = { first: 0, second: 1, third: 2 }    
const cc = {};

for(var key in bb)
   cc[key] = aa[bb[key]];
...