Что возвращает метод массива splice в JavaScript
Разбор вопроса «Что возвращает метод массива splice в JavaScript» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.
Вопрос
Что возвращает метод массива splice в JavaScript
Профессия
Frontend Developer
Что хочет услышать интервьюер
Интервьюер хочет убедиться, что кандидат понимает поведение метода splice, включая его мутабельный характер и возвращаемое значение. Важно показать знание того, что splice изменяет исходный массив и возвращает удаленные элементы.
Ключевые тезисы
- Метод splice возвращает новый массив, содержащий удаленные элементы из исходного массива.
- Если элементы не удаляются, splice возвращает пустой массив.
- Исходный массив при этом изменяется — из него удаляются или добавляются указанные элементы.
Подробный ответ
Метод splice() в JavaScript используется для изменения содержимого массива путем удаления, замены или добавления элементов. Он возвращает новый массив, содержащий удаленные элементы. Если элементы не удаляются, метод возвращает пустой массив. При этом исходный массив изменяется — из него удаляются или добавляются указанные элементы. splice() принимает три параметра: начальный индекс, количество удаляемых элементов (deleteCount) и необязательные элементы для добавления. Если второй параметр (deleteCount) не передан, splice() удалит все элементы от начального индекса до конца массива. Если начальный индекс больше длины массива, splice() ведет себя как добавление элементов в конец массива без удаления.
Практические примеры
Пример 1
Пример 1: Удаление элементов
const fruits = ['apple', 'banana', 'cherry', 'date'];
const removed = fruits.splice(1, 2);
console.log(removed); // ['banana', 'cherry']
console.log(fruits); // ['apple', 'date']Пример 2
Пример 2: Добавление элементов без удаления
const numbers = [1, 2, 3, 4];
numbers.splice(2, 0, 'a', 'b');
console.log(numbers); // [1, 2, 'a', 'b', 3, 4]Пример 3
Пример 3: Замена элементов
const colors = ['red', 'green', 'blue'];
const removedColors = colors.splice(1, 1, 'yellow', 'orange');
console.log(removedColors); // ['green']
console.log(colors); // ['red', 'yellow', 'orange', 'blue']Частые ошибки
- Путаница между
splice()иslice().slice()возвращает новый массив, содержащий копию части исходного массива, не изменяя его, в то время какsplice()изменяет исходный массив. - Непонимание поведения
splice()при отсутствии второго аргумента. Без deleteCount удаляются все элементы от начального индекса до конца массива.
Связанные темы
- Метод
slice()для работы с массивами - Метод
push()иpop()для добавления и удаления элементов в конце массива - Метод
shift()иunshift()для добавления и удаления элементов в начале массива
Follow-up вопросы
Чем отличается splice от slice?
Уровень: basic
splice изменяет исходный массив, удаляя или добавляя элементы, и возвращает удаленные элементы. slice возвращает новый массив — копию части исходного массива, не изменяя его.
Можно ли использовать splice для добавления элементов без удаления? Как?
Уровень: intermediate
Да, если передать 0 в качестве второго аргумента (количество удаляемых элементов). Например: arr.splice(2, 0, 'new') добавит 'new' на позицию 2, не удаляя элементы.
Как поведет себя splice, если начальный индекс больше длины массива?
Уровень: intermediate
Начальный индекс будет установлен равным длине массива. Если удаление не требуется (например, splice(len, 0, elem)), элемент добавится в конец. Если удаление задано — вернется пустой массив, так как удалять нечего.
Какие будут последствия, если не передать второй аргумент (deleteCount) в splice?
Уровень: advanced
Все элементы от начального индекса до конца массива будут удалены, так как deleteCount по умолчанию равен (arr.length - startIndex). splice вернет эти элементы.
Как безопасно удалить последний элемент массива с помощью splice?
Уровень: basic
Используйте arr.splice(-1, 1). Отрицательный индекс отсчитывается с конца массива (-1 — последний элемент), а 1 указывает на удаление одного элемента.
Что возвращает метод Array.isArray
Разбор вопроса «Что возвращает метод Array.isArray» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.
Какие методы запрещают добавлять свойства в объект
Разбор вопроса «Какие методы запрещают добавлять свойства в объект» для Frontend Developer: что проверяет интервьюер, ключевые тезисы, практические примеры и частые ошибки.