[前端CookBook系列]JS获取数组最后一个元素

记录一些在不修改原数组的基础上,获取数组最后一个元素的方法,有更多便捷的方法欢迎评论区继续补充。

注: 以下方法,对空数组的情况下,均可正常执行,不报错。对空数组,结果将返回 undefined

1、使用 arr[arr.length – 1]

这种方法不仅可以用于Array类型,还可以用于argumentsSet

const lastElement = arr[arr.length-1]

实际开发的时候,变量名通常会比较长,这样一来,这种写法就太长了。

2、使用Array.pop()

使用数组出栈的方法,可以移除数组的最后一个元素,并返回该元素
注意这里会改变原数组,因此在获取前需要浅拷贝数组。

可以使用slice(0)或es6扩展运算符,浅拷贝数组。

const lastElement = [...arr].pop();

谨慎选择,就怕你不记得先浅拷贝,直接pop出栈了

3、【推荐】使用Array.slice(-1)

slice() 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。原始数组不会被改变。

上面提到浅拷贝可以使用slice,既然都使用了slice,那么,可以直接使用slice的begin支持负数的特性,直接截取最后一个元素组成数组。注意slice返回的是数组

// slice返回的是数组,一定要记得取0索引元素
const lastElement = arr.slice(-1)[0]

这种写法最简洁

4、Array.reverse翻转数组后获取第一个数组

reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。

该方法会改变数组,所以还是要先浅拷贝

const lastElement = [...arr].reverse()[0]

这不比第二种还长。

[前端CookBook系列]JS获取数组最后一个元素

发表回复

您的电子邮箱地址不会被公开。

滚动到顶部