в чем разница между методами splice и slice в javascript и когда их использовать

Аватар пользователя Ivan Gagarinov
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