Как правильно вставить элемент по индексу в массив

Ребят изучаю синтаксис. Вставляю в арей элементы по заданому индексу и получаю совсем не ту последовательность которую ожидаю получить. Ожидаю: [ 'Masha','Petya', 'Вася', ]. Получаю: [Masha', 'Вася', 'Petya']

const myAr = [
{ name: "Вася", age: 35, index: 2 },
{ name: "Petya", age: 25, index: 1 },
{ name: "Masha", age: 20, index: 0 },
];

let res = [];

for (i of myAr) {
  console.log(i);
  console.log("i.index:", i.index, "i.name:", i.name);      
  res.splice(i.index, 0, i.name);
}

console.log("res:", res);

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

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

При использовании метода splice Вы удаляете из массива элемент по индексу и добавляете новый. Учитывая, что массив меняется при каждом "срезе", Вы получаете уже другие данные.

Чтобы вставить данные в массив по индексу, используйте данный подход:

    const myAr = [
        { name: "Вася", age: 35, index: 2 },
        { name: "Petya", age: 25, index: 1 },
        { name: "Masha", age: 20, index: 0 },
    ];

    let res = [];

    for (i of myAr) {
        res[i.index] = i.name;
    }
    console.log("res:", res);

→ Ссылка