@MRcracker

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

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

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

или

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

или

eval('({' + arr.map(n => n + ':' + n) + '})')
Ответ написан
Tim-A-2020
@Tim-A-2020 Куратор тега JavaScript
Еще несколько способов, если вам не принципиальны ключи объекта
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}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
Artezio Нижний Новгород
от 130 000 до 180 000 ₽
Artezio Москва
от 160 000 до 220 000 ₽
Artezio Минск
от 2 800 до 3 300 $
28 февр. 2021, в 01:35
200000 руб./за проект
28 февр. 2021, в 00:22
2500 руб./за проект
27 февр. 2021, в 22:14
30000 руб./за проект