> В чем разница между 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). Это менее читаемо и не подходит для динамических условий.
Пример:
JAVASCRIPTconst 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 - для извлечения непрерывного подмассива по индексам. Оба не мутируют исходный массив.
> Похожие задачи по frontend
Как реализовать функцию, принимающую селектор и возвращающую объект с методами для добавления классов и навешивания событий
Какие инструменты для стилей вы используете и выделяете ли что-то в JS
Что такое директива 'use strict' в JavaScript и как она влияет на код
Куда пойдет выполнение при конкурентном запуске нескольких задач в JavaScript
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью