Задать вопрос
@MRcracker

Как из массива сделать объект?

Есть массив
let arr = [1,2,3,4,5];

Как из него можно сделать объект {1:1, 2:2, 3:3, 4:4, 5:5}
  • Вопрос задан
  • 320 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 3
0xD34F
@0xD34F Куратор тега JavaScript
Object.fromEntries(arr.map(n => [ n, n ]))

// или

arr.reduce((acc, n) => (acc[n] = n, acc), {})

// или

Object.assign({}, ...arr.map(n => ({ [n]: n })))

// или

eval('({' + arr.map(n => n + ':' + n) + '})')

// или

JSON.parse(`{${arr.map(n => `"${n}": ${n}`)}}`)
Ответ написан
Комментировать
Tim-A-2020
@Tim-A-2020
Еще несколько способов, если вам не принципиальны ключи объекта
Object.assign({}, [1,2,3,4,5]);  // {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}

т.е если будет такой массив ['a','b','c'], то получится
Object.assign({},  ['a','b','c']);  // {0: "a", 1: "b", 2: "c"}

Еще аналогичные способы
{...[1,2,3,4,5]} // {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}


Object.fromEntries(Object.entries([1,2,3,4])); //  {0: 1, 1: 2, 2: 3, 3: 4, 4: 5}
Ответ написан
Комментировать
devellopah
@devellopah
function test(arr) {
  var obj = {}
  arr.forEach(el => {
    obj[el] = el
  })
  return obj
}

test([1, 2, 3, 4, 5]) // {1: 1, 2: 2, 3: 3, 4: 4, 5: 5}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы