Вот еще Javascript-арт, если вы пришли сюда в поисках
В духе другого ответа, который использовал reduceRight()
, но короче:
[3, 2, 1, 5].reduceRight(a => a);
Он основан на том факте, что в случае, если вы не укажете начальное значение, самый последний элемент будет выбран в качестве начального (см. Docs здесь). Поскольку обратный вызов просто продолжает возвращать начальное значение, последний элемент будет тем, который возвращается в конце.
Помните, что это следует рассматривать как искусство 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("."));
person
Lucio Paiva
schedule
16.09.2018