Lodash конвертирует массив в объект - PullRequest
3 голосов
/ 23 мая 2019

преобразовать массив в объект, вывод должен быть таким же, как ключ и значение.

образец массива: (моя структура ввода)

var a = [1,2,3,4,5];

Мне нужна эта структура вывода:

{ 
  '1': 1,
  '2': 2,
  '3': 3,
  '4': 4,
  '5': 5
}

Ответы [ 5 ]

4 голосов
/ 23 мая 2019

Используйте Лодаша _.keyBy():

const result = _.keyBy([1, 2, 3, 4, 5]);

console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>
4 голосов
/ 23 мая 2019

Для этого вам не нужна библиотека, просто стандартное сокращение :

let obj = [1,2,3,4,5].reduce((o,k)=>(o[k]=k,o), {})
1 голос
/ 23 мая 2019

Вы можете использовать Object.fromEntries() с Array.map():

var a = [1,2,3,4,5];

console.log(
Object.fromEntries(a.map(v => [v, v]))
)
1 голос
/ 23 мая 2019

Я использую уменьшить здесь

const listToObject = list => list.reduce((obj, key) => {
          return {
            ...obj,
            [key]:key
          }
        }, {})
        
console.log(listToObject([1,2,3,4,5]))
1 голос
/ 23 мая 2019

Вы можете сопоставить объекты с одинаковыми ключом и значением и назначить все объекту.

var array = [1, 2, 3, 4, 5],
    result = Object.assign({}, ...array.map(k => ({ [k]: k })));

console.log(result);
...