Методы массивов: splice, slice, concat
JavaScript простым языком

В предыдущем уроке я рассказал тебе о массивах
и базовых методах
для работы с ними. В этом и последующих уроках мы разберем, практически, полный список методов, которые постоянно применяются в разработке.
Метод splice
В предыдущем уроке мы узнали как добавлять элементы в начало/конец массива
, а так же как удалять элементы с конца/начала массива
. Скорее всего ты задавался вопросом, а как же удалить элемент, если он не в начале массива и не в конце.
Для данного действия, существует метод splice
, которым ты в будущем будешь пользоваться очень часто, т.к. этот метод умеет и добавлять и удалять элементы в любом месте массива. Переходим к примеру использования:
const languages = ['python', 'java', 'js'];
languages.splice(0, 2);
console.log(languages); // ['js']
Обрати внимание на аргументы при вызове splice()
. Первый аргумент – 0
, а второй –2
.
Первый аргумент – это указание индекса (позиции) элемента в массиве, с которого нужно начинать удаление.
Второй аргумент – количество элементов, которые нужно удалить с указанной позиции.
Итого, этим languages.splice(0, 2)
, мы сказали: удали 2 элемента начиная с индекса 0.
У этого метода есть еще одно достоинство – умение добавлять элементы (любое количество) на место удаленных элементов. Пример:
const languages = ['python', 'java', 'js'];
languages.splice(0, 2, 'php', 'c#', 'c++');
console.log(languages); // ['php', 'c#', 'c++', 'js']
Первые два аргумента метода объяснены выше, а вот следующие за ними аргументы будут вставляться в массив на место удаленных элементов. Их количество не ограничено – хочешь, добавь один элемент, хочешь 10 тысяч элементов, все будет прекрасно работать.
Этот метод меняет массив по месту, т.е. меняет исходный массив.
Метод slice
Метод копирует указанные элементы массива и создает из них новый.
const languages = ['java', 'python', 'php', 'c++', 'js'];
const newList = languages.slice(2, 4);
console.log(newList); // ['php', 'c++']
Метод slice
не меняет исходный массив, а возвращает новый, поэтому для сохранения результатов его выполнения нужно эти самые результаты куда-то записать, для этого я определил константу newList
.
Метод имеет только 2 аргумента
.
Первый аргумент – индекс элемента С которого нужно начинать копирование.
Второй аргумент – индекс ДО которого нужно копировать элементы не включая его.
languages.slice(2, 4)
– в данном случае, мы говорим: скопируй элементы с индексом 2 и 3. Элемент с индексом 4 не будет включен.
Аргументы могут быть не только положительными числами
, но и отрицательными
, в таком случае отсчёт будет начинаться с конца массива.
Метод concat
Метод concat
, фактически, создает из нескольких массивов/значений один, объединяя их. Результат выполнения метода – новый массив
, который нужно куда-то записать для дальнейшей работы с ним.
const languages = ['python', 'java', 'js'];
const additionalLanguages = ['c#', 'c++'];
const summary = languages.concat(additionalLanguages);
console.log(summary); // ['python', 'java', 'js', 'c#',\
// 'c++']
Метод принимает неограниченное количество аргументов. Если аргумент является массивом, то все его элементы копируются. В противном случае копируется сам аргумент.
const languages = ['js'];
languages.concat(['python', 'php'], 'java'); // ['js', \
// 'python', 'php', 'java']
Last updated
Was this helpful?