Мое решение:
let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = {};
for (let i = 0; i <= arr.length; i++) {
obj[i + 1] += arr;
}
console.log(obj);
Ну Вы были относительно близко.
1. Зачем Вы делаете
+=
? Вы же не плюсуете к чему то, а назначаете значение. То есть
- obj[i + 1] += arr;
+ obj[i + 1] = arr;
2. Зачем Вы прибавляете весь arr, когда Вам нужен элемент массива, а не весь массив. То есть:
- obj[i + 1] = arr;
+ obj[i + 1] = arr[i];
3. Цикл выполнится 6 раз, так как у Вас от нуля до длины массива - 5. То есть, 0,1,2,3,4,5. Вместо этого можно начать с 1, и в итоге тогда:
let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = {};
for (let i = 1; i <= arr.length; i++) {
obj[i] = arr[i-1];
}
console.log(obj);
Ну и как уже сказали выше, можно через reduce. Тогда будет значительно короче:
let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = arr.reduce((a, c, i) => (a[i+1] = c, a), {});
console.log(obj);