> В чем разница между filter и slice для удаления элементов в JavaScript? (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Black Wall Group (BWG)

Стек: JavaScript

> Пример ответа

Основное различие в том, что filter создаёт новый массив, не изменяя исходный, а slice возвращает поверхностную копию части массива (также без мутации оригинала), но не предназначен для удаления по условию.

  • filter используется для удаления элементов на основе callback-функции: arr.filter(item => item > 5) оставит только элементы больше 5. Он гибок, но всегда возвращает новый массив.
  • slice(start, end) просто копирует элементы с индекса start до end (не включая end). Его можно использовать для "удаления" только если вы знаете точные индексы (например, arr.slice(0, 2).concat(arr.slice(3)) удалит элемент с индексом 2). Это менее читаемо и не подходит для динамических условий.

Пример:

JAVASCRIPT
const arr = [1, 2, 3, 4, 5];
// filter: удалить все чётные
const filtered = arr.filter(n => n % 2 !== 0); // [1, 3, 5]
// slice: удалить элемент с индексом 2 (значение 3)
const sliced = [...arr.slice(0, 2), ...arr.slice(3)]; // [1, 2, 4, 5]

Ключевой момент: filter - для удаления по логическому условию, slice - для извлечения непрерывного подмассива по индексам. Оба не мутируют исходный массив.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью