Как элементы массива сделать значениями объекта?
Мое решение:
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);
Короткий способ: создание объекта из пар [ключ, значение] методом fromEntries():
Object.fromEntries(arr.map((v, i) => [i + 1, v]))

как это работаетИз исходного массива методом map() создаётся новый, где каждый элемент это тоже массив:
[ [1, 'a'], [2, 'b'], ... ]
Такой массив массивов годится для передачи в Object.fromEntries() для получения искомого объекта.