Извлечение последних элементов массива в JavaScript: slice()
Пройдите тест, узнайте какой профессии подходите
Быстрый ответ
Чтобы выбрать последние 5 элементов массива, не включая первый элемент, воспользуйтесь методом slice()
дважды:
let lastFiveExceptFirst = array.slice(1).slice(-5);
Первый вызов slice(1)
удаляет первый элемент из массива, а второй вызов slice(-5)
выбирает последних пять элементов из полученного массива.
Уточнение метода
Если в массиве менее шести элементов, следует модифицировать наш подход, чтобы избежать получения одноэлементного массива.
let lastElements = array.length > 1 ? array.slice(1).slice(-5) : [];
Мы проверяем, имеет ли смысл пытаться извлечь элементы из массива, в котором их меньше или равно одному.
Учет размера массива
Перед использованием метода slice()
следует определить, с какой позиции начинать обрезание массива.
let startPosition = Math.max(array.length – 5, 1);
let lastFiveExceptFirst = array.slice(startPosition);
Этот подход гарантирует, что мы получим последние пять элементов, не затрагивая при этом первый, независимо от размера исходного массива.
lodash как решение
Если вы полагаетесь на lodash, можно использовать функцию _.takeRight()
:
let lastElements = _.takeRight(array.slice(1), 5);
lodash гарантирует избежание нежелательных ситуаций при обработке массивов.
Визуализация
Представьте массив как очередь в кассу. И вам нужно взять последние 5 билетов, пропустив первого покупателя:
Очередь: 🎫🎫🎫🎫🎫🎫🎫🎫🎫 🚪
Массив: [1, 2, 3, 4, 5, 6, 7, 8, 9]
Чтобы обеспечить себе последние 5 билетов, пропустив первого покупателя, примените наш метод:
Позиция в очереди: 🎫🕵️♂️
Последние билеты: 🎫🎫🎫🎫🎫 🚪
Array.slice(-6, -1): [4, 5, 6, 7, 8]
С этим подходом работа с массивами значительно упрощается.
Непредсказуемые данные
В разработке программного обеспечения мы часто сталкиваемся с непредсказуемой информацией. Поэтому следует готовиться к различным ситуациям:
- Пустой массив: Перед применением среза убедитесь, что у вас есть хотя бы один элемент для обработки.
- Динамическое извлечение элементов: Не ограничивайтесь числом 5. Замените
5
на переменную, чтобы извлекать любое требуемое количество последних элементов. - Производительность: Помните, что срезание массива подразумевает его копирование. Если массив очень большой, это может тормозить вашу программу.
Работа с slice()
Метод slice()
– отличный инструмент для обработки массивов. Он не изменяет исходный массив, сохраняя его неизменность. Вы можете получить копию массива следующим образом:
let arrayCopy = array.slice();
Однако стоит помнить: как и любой инструмент, slice()
требует понимания его свойств и правильного использования. Он принимает два аргумента slice(start, end)
, причем start
включается в выходной массив, а end
– нет.
Полезные материалы
- Array.prototype.slice() – JavaScript | MDN — Подробнее о механике работы метода slice.
- Array: length – JavaScript | MDN — Узнайте больше об управлении длиной массива.
- Методы массивов — Широкий обзор возможностей для работы с массивами.
- ECMAScript 6: Новые возможности: Обзор и сравнение — Ознакомьтесь с такими функциями ES6, как оператор расширения и другие.
- ES6 подробно: Остальные параметры и значения по умолчанию – Mozilla Hacks — Более глубокое изучение возможностей ES6: остальные параметры и значения по умолчанию.