@DashaPoliazzz

Как заменить элементы в массиве с помощью .splice?

const arr = [1,2,3,4,5];
arr.splice(1, 2, "number");
console.log(arr); // => [1, 'number', 4, 5]; 
// Как получить [1, 'number','number', 4, 5]; ?

Как передать третьем аргументом в .splice элемент, чтобы он стал на ВСЕ удаленные места?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
С какого места, сколько и на что надо заменить:

const index = 1;
const count = 2;
const value = 'hello, world!!';

Заменяем:

arr.splice(index, count, ...Array(count).fill(value));

// или, splice использовать необязательно
for (let i = count; i-- > 0; arr[index + i] = value) ;

Если вдруг возможен выход за границы массива (количество заменяемых элементов больше чем разность длины массива и индекса, с которого надо выполнить замену), то вместо оригинального значения количества можно использовать исправленное:

const fixCount = Math.max(0, Math.min(count, arr.length - index));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы