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

Вступление
Получить последний элемента списка/массива легко. В этом уроке мы рассмотрим, как это сделать.
JavaScript – нетипизированный язык. Это значит, что нам не нужно объявлять тип переменной перед её использованием.
var x = “something” вычисляется, а x присваивается строковой тип. То же самое и со списками: не нужно определять тип, вы можете просто заполнить список значениями.
Список можно создать, поместив элементы в квадратные скобки ([]), элементы могут быть разнородными (не одного типа):
var myList = ["Peter", "Smith", 25, 23, "Random String", 10]
В JavaScript есть множество встроенных методов, которые можно использовать для управления списками, подобных этому. Дальше мы рассмотрим некоторые из них.
Получаем последний элемент, используя length
Атрибут length обозначает количество элементов в списке:
console.log(myList.length)
Индексирование элементов в массивах/списках JavaScript очень похоже на другие языки. Мы можем получить доступ к элементу на основе его индекса, передав его в квадратных скобках [], ссылаясь на массив. Последний элемент имеет индекс length – 1.
Операция очень проста, поле length просто выводит сохранённое значение элементов. Лучший способ получить последний элемент массива/списка JavaScript – это:
var lastElement = myList[myList.length - 1];
console.log(lastElement);
Результат:
10
Получаем последний элемент с помощью pop()
Метод pop() выводит последний элемент, но во время процесса его удаляет. Если мы используем оператор распространения из ES6, мы пропустим эту функцию, скопировав список в память и выполнив pop() на копии, сохранив исходный список.
Метод *pop()`
var lastElement = myList.pop();
console.log(lastElement)
console.log(myList)
В результате список сокращается до этого элемента:
10
["Peter", "Smith", 25, 23, "Random String"]
Если вам нужно, чтобы исходный список был изменён, вы можете удалить из него элементы. Если вам нужен оригинал, вы можете сделать копию и использовать pop().
pop() с оператором распространения ES6′
ES6 – это сокращение от ECMAScript 6, стандарта JavaScript, используемого для упрощения программирования на JavaScript. Его придумали ещё в 1997 году, а он стал популярным в 2015 году вместе со стандартом ES6.
В нём мы воспользуемся оператором распространения.
Оператор распространения может копировать списки/массивы:
[...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 – целые числа.
console.log(myList.slice(1, 4))
Результат:
["Smith", 25, 23]
Метод slice() также допускает отрицательное индексирование: когда выполняется итерация в обратном направлении. Если мы напишем slice(-4, -1), итерация начнется с третьего элемента и закончится перед последним.
Мы можем просто включить один последний элемент из конца списка с помощью функции slice():
console.log(myList.slice(-1))
Результат:
[10]
Это всё ещё массив, и чтобы получить элемент, мы обращаемся к нему с помощью 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].
Заключение
Самый эффективный и наиболее интуитивно понятный методом из всех – это myList[myList.length()-1]. Его то вы и будете чаще всего использовать.