Как правильно вставить элемент по индексу в массив
Ребят изучаю синтаксис. Вставляю в арей элементы по заданому индексу и получаю совсем не ту последовательность которую ожидаю получить. Ожидаю: [ '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);