是否有一种快速(简短,字符明智)的方法来获取数组的最后一个元素(假设数组非空)?
我通常这样做:
last = array[array.length-1]
或者last = array[-1..][0]
是否有一种快速(简短,字符明智)的方法来获取数组的最后一个元素(假设数组非空)?
我通常这样做:
last = array[array.length-1]
或者last = array[-1..][0]
如果您使用的是现代版本的 CoffeeScript,请不要使用它。改用dule的答案。
如果您不介意修改数组,
last = array.pop()
如果您不想修改数组,
last = array[..].pop()
编译为last = array.slice(0).pop()
. 我认为对于已经接触过 CoffeeScript 或 Python 切片的人来说,它是非常易读的。但是,请记住,它会比last = array[array.length-1]
大型阵列慢得多。
我不会推荐last = array[-1..][0]
。它很短,但我认为它的含义不会立即显而易见。不过,这都是主观的。
另一种选择是使用咖啡的解构:
[..., last] = array
我喜欢dule的建议,原因如下:
我使用 'try coffeescript' 测试了这种解构方法,这是一个在线咖啡到 js 编译器,位于http://coffeescript.org/。
鉴于以下咖啡脚本:
arr = [1,2,3,4,5]
[..., last] = arr
它编译成:
var arr, last;
arr = [1, 2, 3, 4, 5];
last = arr[arr.length - 1];
这真的很理想。解构语法非常清晰简洁。编译后的 javascript 是高性能的。我认为没有理由不使用它。
(我没有足够的声誉将其作为评论发布在 dule 的答案下,因此即使它是评论,我也将其添加为答案。)
或者你可以这样做:
last = array[-1..][0]