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]. Его то вы и будете чаще всего использовать.

Ответить