как начать не с 0 а с 1?? Создать из массива объект

Как начать не с 0 а с 1?

Дан следующий массив: let arr = ['a', 'b', 'c', 'd', 'e'];
Нужно из этого массива получить объект: {1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e'};

let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = {};
for ( let i = 0; i < arr.length; i++ ) {
  obj[i] = arr[i];
  console.log(obj)
}


Ответы (2 шт):

Автор решения: Astrodynamic

В вашем коде есть ошибка, которая затрудняет достижение желаемого результата. При заполнении объекта вы используете переменную i в качестве ключа, но таким образом вы создаете индексный массив (начинающийся с 0), а не объект с ключами 1,2,3,4,5.

Для того чтобы начать с 1, вам нужно просто увеличить значение, которое используется для создания ключа. Также стоит помнить, что индексация массивов в JavaScript начинается с 0, поэтому мы будем начинать с 1, а не с 0, как это было бы стандартно в массивах.

Попробуйте этот код:

let arr = ['a', 'b', 'c', 'd', 'e'];
let obj = {};
for ( let i = 0; i < arr.length; i++ ) {
  obj[i+1] = arr[i];
}
console.log(obj);

В результате выполнения этого кода вы должны получить следующий объект:

{1: "a", 2: "b", 3: "c", 4: "d", 5: "e"}
→ Ссылка
Автор решения: ksa

Вот так еще можно сделать...

const arr = ['a', 'b', 'c', 'd', 'e'];
const obj = arr.reduce((o, v, i) => (o[i + 1] = v, o), {})
console.log(obj)

→ Ссылка