Как я могу сгенерировать результат связывания ключей с помощью lodash? - PullRequest
0 голосов
/ 31 мая 2018

У меня есть следующий массив:

const ids = ["1234", "5678", "0987", "6543"]

И мне нужна функция с lodash, которая возвращает:

const result = {"1234": { workId: null }, "5678": { workId: null }, "0987": { workId: null }, "6543": { workId: null }}

Как использовать методы lodash?

Спасибо за помощь

Ответы [ 2 ]

0 голосов
/ 31 мая 2018

Вот решение lodash, которое использует lodash#invert и lodash#mapValues

const result = _(ids)
  .invert()
  .mapValues(() => ({ workId: null }))
  .value();

const ids = ["1234", "5678", "0987", "6543"];

const result = _(ids)
  .invert()
  .mapValues(() => ({ workId: null }))
  .value();
  
console.log(result);
.as-console-wrapper{min-height:100%;top:0}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
0 голосов
/ 31 мая 2018

Отказ от ответственности: lodash довольно излишне для этого.

Вы можете использовать reduce (ссылка на документ) ... или обычный JS-эквивалент .

const ids = ["1234", "5678", "0987", "6543"]
console.log(ids.reduce((acc, key) => Object.assign(acc, { [key]: { workId: null } }), {}));

Обратите внимание, что я использую функцию ES2015 для динамической установки имени нового ключа для добавления в аккумулятор.

...