Перейти к содержимому

Как взять последний элемент массива js

  • автор:

Получаем последний элемент массива в JavaScript

Массив в JavaScript — это объект-контейнер, содержащий фиксированное количество значений одного типа. Длина массива, после его создания, останется постоянной. В данной статье мы рассмотрим различные методы доступа к последнему элементу массива.

Как получить последний элемент массива?

1 — Используем метод slice() массива для возврата определенного элемента.

2 — Извлекаем последний элемент, используя массив отрицательных индексов array.slice(-1).

3 — Сохраняем искомое значение в переменной.

Далее мы рассмотрим варианты реализации кода.

Использование свойства длины массива.

Свойство length возвращает количество элементов в массиве. Вычитание 1 из длины массива дает индекс последнего элемента массива, с помощью которого можно получить доступ к последнему элементу. Причина, по которой мы вычитаем 1 из длины, заключается в том, что в JavaScript нумерация индексов массива начинается с 0. т. е. индекс 1-го элемента будет равен 0. Поэтому индекс последнего элемента будет равен длине массива-1.

let array = [2, 4, 6, 8, 10, 12, 14, 16];
let lastElem = array[array.length — 1];

Использование метода slice().

Метод slice() возвращает определенные элементы из массива в виде нового объекта массива. Этот метод выбирает элементы, начинающиеся с заданного начального индекса и заканчивающиеся заданным конечным индексом, исключая элемент в конечном индексе. Метод slice() не изменяет существующий массив. Предоставление одного значения индекса возвращает элемент в этой позиции, а отрицательное значение индекса вычисляет индекс с конца массива.

let array = [2, 4, 6, 8, 10, 12, 14, 16];
let lastElem = array.slice(-1);

Использование метода pop().

Метод pop() извлекает/удаляет последний элемент массива и возвращает его. Этот метод изменяет длину массива.

let array = [2, 4, 6, 8, 10, 12, 14, 16];
let lastElem = array.pop();

Давайте теперь используем все три метода для массива, чтобы получить последний элемент и проверить, какой метод является самым быстрым:

let array = [2, 4, 6, 8, 10, 12, 14, 16];

console.time(‘array length property’);
let lastElem = array[array.length — 1];
console.log(lastElem);
console.timeEnd(‘array length property’);

console.time(‘array slice method’);
let lastElem1 = array.slice(-1);
console.log(lastElem1);
console.timeEnd(‘array slice method’);

console.time(‘array pop method’);
let lastElem2 = array.pop();
console.log(lastElem2);
console.timeEnd(‘array pop method’);

//16
//array length property: 7 ms
//[ 16 ]
//array slice method: 5 ms
//16
//array pop method: 2 ms

И как вы можете видеть, метод pop() является самым быстрым. Вы можете использовать его, если вас устраивает изменение массива. Если вы не хотите изменять массив, то используйте метод slice().

Создано 14.09.2021 09:42:02

  • Михаил Русаков
  • Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

    Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
    Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

    Если Вы не хотите пропустить новые материалы на сайте,
    то Вы можете подписаться на обновления: Подписаться на обновления

    Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

    Порекомендуйте эту статью друзьям:

    Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

    1. Кнопка:
      Она выглядит вот так:
    2. Текстовая ссылка:
      Она выглядит вот так: Как создать свой сайт
    3. BB-код ссылки для форумов (например, можете поставить её в подписи):

    Комментарии ( 0 ):

    Для добавления комментариев надо войти в систему.
    Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

    Copyright © 2010-2024 Русаков Михаил Юрьевич. Все права защищены.

    JavaScript: получить последний элемент в списке

    Получение последнего элемента списка / массива — обычная операция. В этом руководстве мы рассмотрим, как получить последний элемент в массиве / списке JavaScript.

    JavaScript — это слабо типизированный или нетипизированный язык, что означает, что тип переменной не нужно объявлять перед ее использованием, поскольку JavaScript определяет тип, считывая значение переменной.

    var x = «something» оценивается и x присваивается типу String. Тот же процесс применяется к спискам — вам не нужно определять тип списка, вы можете просто заполнить список значениями.

    Список определяется путем помещения элементов между квадратными скобками ( [] ), где элементы могут быть разнородными (не обязательно одного типа):

    var myList = ["Peter", "Smith", 25, 23, "Random String", 10] 

    В JavaScript есть множество встроенных методов, которые можно использовать для управления списками, подобными этому.

    Получить последний элемент, используя длину

    Атрибут length из списка обозначает количество элементов в списке:

    console.log(myList.length) 

    Индексирование элементов в массивах / списках в JavaScript очень похоже на другие языки. Мы можем получить доступ к элементу на основе его индекса, передав его в квадратных скобках [] , ссылаясь на массив. Последний элемент имеет индекс length-1 .

    Поскольку поле length просто возвращает сохраненное значение элементов — это быстрая, эффективная и дешевая операция. Лучший способ получить последний элемент массива / списка JavaScript:

    var lastElement = myList[myList.length - 1]; console.log(lastElement); 

    Получить последний элемент с помощью pop()

    Метод pop() возвращает последний элемент коллекции, но удаляет его из коллекции. Однако, если мы используем оператор распространения из ES6 — мы можем избежать этой функции, временно скопировав список в память и выполнив операцию pop() с копией, сохранив исходный список нетронутым.

    Метод *pop()`

    Пусть pop() это последний элемент из списка:

    var lastElement = myList.pop(); console.log(lastElement) console.log(myList) 

    Это приводит к тому, что список урезается (последний элемент выризается из исходной коллекции):

    10 ["Peter", "Smith", 25, 23, "Random String"] 

    Если вам не нужно, чтобы исходный список оставался неизменным, вы можете извлекать из него элементы, но если вам действительно нужен оригинал, вы можете сделать копию и pop() из него.

    pop() с оператором распространения ES6

    ES6 — это сокращение от EcmaScript6, который представляет собой стандарт JavaScript, используемый для упрощения программирования на JavaScript (меньше кодировать, но делать больше).

    Он был основан еще в 1997 году, и его первый крупный прорыв произошел в 2015 году со стандартом ES6 (или EcmaScript2015). Последняя версия — 11-я, разработанная в 2020 году. Все версии предназначены для упрощения кодирования в JavaScript (с новыми правилами синтаксиса, новыми ключевыми словами и т.д.).

    Функция, которую мы можем здесь использовать, — это оператор распространения ( . ) .

    Помимо других функций, оператор распространения может копировать списки / массивы:

    [. myList] 

    Это создает новый список с теми же элементами, что и myList . При этом мы можем выполнить pop() из нового списка вместо исходного:

    console.log([. myList].pop()) console.log(myList) 
    10 ["Peter", "Smith", 25, 23, "Random String", 10] 

    Примечание: это может быть удобно для написания, но это не самое дешевое решение, поскольку оно копирует список. Для небольших списков это не сильно снижает производительность, но для более длинных списков это неэффективный способ просто получить последний элемент.

    Получить последний элемент с помощью slice()

    В методе slice(a, b) массив нарезается на отрезки от точки a к точке b-1 — при условии, что a и b целые числа. С математической точки зрения, вы можете посмотреть на срез следующим образом: [a, b) — элемент a включен, а элемент b — нет:

    console.log(myList.slice(1, 4)) 

    В результате получается фрагмент исходного массива:

    ["Smith", 25, 23] 

    Этот метод slice() также принимает отрицательную индексацию, где он выполняет итерацию по коллекции в обратном порядке. Итак, если мы выполним slice(-4, -1) , итерация начнется с третьего элемента сзади и закончится на уровне, предшествующем последнему (потому что slice не включает точку b ).

    Это позволяет нам просто включить один последний элемент из конца списка с помощью slice() :

    console.log(myList.slice(-1)) 

    Это все еще массив, поэтому, чтобы получить этот элемент, мы получаем к нему доступ с помощью myList.slice(-1)[0] — который вернет наш элемент:

    console.log(myList.slice(-1)[0]) 

    Примечание: slice() лучше всего использовать, когда вы хотите получить последние N элементов массива, а не один, поскольку вы можете просто использовать вместо них length-1 .

    Получить последний элемент с помощью reverse()

    Метод reverse() меняет список на месте. Последний элемент станет первым, и наоборот:

    console.log(myList.reverse()) 
    [10, 'Random String', 23, 25, 'Smith', 'Peter'] 

    Теперь наш элемент является первым, поэтому мы можем получить к нему доступ с помощью myListReversed[0] .

    Примечание. Обращение массива / списка также является потенциально очень дорогостоящей операцией. Избегайте реверсирования коллекции, если единственное, что вы хотите сделать, — это получить доступ к последнему элементу. Если вы все равно хотите отменить его — вы можете получить доступ к элементу следующим образом. Если нет, обратитесь к первому подходу к использованию length-1 .

    Заключение

    Самый дешевый, эффективный и, вероятно, самый интуитивно понятный из них — первый — myList[myList.length()-1] . Это то, что вы будете использовать большую часть времени.

    Использование pop() удаляет элемент из списка и возвращает его. Если вы хотите удалить элемент — это подход, который вы захотите использовать, иначе вам придется удалить элемент вручную.

    slice() дает нам срез, что является отличным подходом, если мы хотим получить последние N элементов.

    reverse() переворачивает массив на месте, и этого следует избегать, если вы просто хотите получить элемент. Однако, если вы все равно меняете массив, это не требует дополнительных затрат.

    JS последний элемент массива?

    Сейчас делаю так
    array[array.length — 1]
    Нужно что то вроде array.last, Не смог найти такого
    Как сеньер разработчики бы выбрали последний эллемент массива?
    Чтобы без лишних операций в виде поиска длины массива

    • Вопрос задан более трёх лет назад
    • 77124 просмотра

    Комментировать
    Решения вопроса 1

    alvvi

    export default apathy;

    Как сеньер разработчики бы выбрали последний эллемент массива?

    Наверное, как и все остальные
    array[array.length — 1]

    Чтобы без лишних операций в виде поиска длины массива

    Если тут и есть лишняя операция, то это как раз -1, длина массива — это свойство, ничем от вашего array.last оно не отличалось бы, если бы второе существовало, конечно.

    Ответ написан более трёх лет назад
    Комментировать
    Нравится 11 Комментировать
    Ответы на вопрос 3
    Learning Java

    var array = [1,2,3,4,5]; Array.prototype.last = function() < return this[this.length - 1]; >array.last() // 5

    Ответ написан более трёх лет назад
    Комментировать
    Нравится 9 Комментировать
    Stalker_RED @Stalker_RED

    Если этот массив больше не нужен, то можно делать .pop()

    Еще можно делать slice(-1), но мне кажется, что это хуже читается.

    Чтобы без лишних операций в виде поиска длины массива

    И вообще, нет никакой операции поиска, длина массива — это свойство самого массива, и обращение к элементу через индекс (вот как у вас сейчас) гораздо быстрее, чем модифицировать массив )

    Array.prototype.pop()

    Метод pop() удаляет последний элемент из массива и возвращает его значение.

    Синтаксис

    arr.pop()

    Возвращаемое значение

    Последний элемент массива или undefined , если массив пуст.

    Описание

    Метод pop удаляет последний элемент из массива и возвращает удалённое значение.

    Метод pop не является привязанным к типу; этот метод может быть вызван или применён к массивоподобным объектам. Объекты, не содержащие свойство length , отражающее последний элемент в серии последовательных числовых, начинающихся с нуля, свойств, могут повести себя неправильным образом.

    Если вы вызовете pop() на пустом массиве, он вернёт значение undefined .

    Примеры

    Удаление последнего элемента массива

    Следующий код создаёт массив myFish , содержащий четыре элемента, а затем удаляет последний элемент.

    var myFish = ["ангел", "клоун", "мандарин", "хирург"]; console.log(myFish); // ['ангел', 'клоун', 'мандарин', 'хирург'] var popped = myFish.pop(); console.log(myFish); // ['ангел', 'клоун', 'мандарин'] console.log(popped); // 'хирург' 

    Спецификации

    Specification
    ECMAScript Language Specification
    # sec-array.prototype.pop

    Совместимость с браузерами

    BCD tables only load in the browser

    Смотрите также

    • Array.prototype.push()
    • Array.prototype.shift()
    • Array.prototype.unshift()
    • Array.prototype.splice()

    Found a content problem with this page?

    • Edit the page on GitHub.
    • Report the content issue.
    • View the source on GitHub.

    This page was last modified on 4 авг. 2023 г. by MDN contributors.

    Your blueprint for a better internet.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *