Вот еще искусство Javascript, если вы пришли сюда в поисках
В духе другого ответа, который использовал reduceRight()
, но короче:
[3, 2, 1, 5].reduceRight(a => a);
Он основан на том факте, что, если вы не предоставите начальное значение, самый последний элемент будет выбран в качестве исходного (см. Документацию здесь ). Поскольку обратный вызов просто продолжает возвращать начальное значение, последний элемент будет тем, который возвращается в конце.
Помните, что это следует рассматривать как искусство Javascript, и я ни в коем случае не рекомендую делать это, в основном потому, что он выполняется за время O (n), а также потому, что это ухудшает читабельность.
А теперь серьезный ответ
Лучший способ, который я вижу (учитывая, что вы хотите его более кратким, чем array[array.length - 1]
), заключается в следующем:
const last = a => a[a.length - 1];
Тогда просто используйте функцию:
last([3, 2, 1, 5])
Функция на самом деле полезна в случае, если вы имеете дело с анонимным массивом, подобным [3, 2, 1, 5]
используемому выше, в противном случае вам придется создавать его дважды, что было бы неэффективно и уродливо:
[3, 2, 1, 5][[3, 2, 1, 5].length - 1]
Тьфу.
Например, вот ситуация, когда у вас есть анонимный массив и вам нужно определить переменную, но вы можете использовать last()
вместо этого:
last("1.2.3".split("."));