в чем разница между методами splice и slice в javascript и когда их использовать
Ответы
Ivan Gagarinov
27 ноября 2024
Метод splice()
используется для изменения содержимого массива. Он может удалять, добавлять и заменять элементы в массиве.
array.splice(start, deconsteCount, item1, item2, ...)
- start: Индекс, с которого начинать изменения. Если значение отрицательное, оно указывает смещение от конца массива.
- deconsteCount: Необязательный параметр, указывающий, сколько элементов удалить, начиная с индекса
start
. ЕслиdeconsteCount
равен 0, элементы не удаляются. - item1, item2, ...: Необязательные параметры, указывающие элементы, которые необходимо добавить в массив, начиная с индекса
start
.
Удаление элементов:
const fruits = ['apple', 'banana', 'orange', 'pear'];
fruits.splice(1, 2);
console.log(fruits); // ['apple', 'pear']
Добавление элементов:
const fruits = ['apple', 'banana'];
fruits.splice(1, 0, 'orange', 'pear');
console.log(fruits); // ['apple', 'orange', 'pear', 'banana']
Замена элементов:
const fruits = ['apple', 'banana', 'orange'];
fruits.splice(1, 1, 'kiwi');
console.log(fruits); // ['apple', 'kiwi', 'orange']
Метод slice()
используется для создания нового массива, содержащего копию части исходного массива. Он не изменяет исходный массив.
array.slice(start, end)
- start: Индекс, с которого начинать извлечение. Если значение отрицательное, оно указывает смещение от конца массива.
- end: Необязательный параметр, указывающий индекс, по которому заканчивается извлечение (не включая элемент с этим индексом). Если не указан, извлечение продолжается до конца массива.
Извлечение части массива:
const fruits = ['apple', 'banana', 'orange', 'pear'];
const citrus = fruits.slice(1, 3);
console.log(citrus); // ['banana', 'orange']
Копирование массива:
const fruits = ['apple', 'banana', 'orange'];
const fruitsCopy = fruits.slice();
console.log(fruitsCopy); // ['apple', 'banana', 'orange']
Использование отрицательных индексов:
const fruits = ['apple', 'banana', 'orange', 'pear'];
const lastTwo = fruits.slice(-2);
console.log(lastTwo); // ['orange', 'pear']
0
0