1、引言
js中如何访问数组最后一个元素 ?
如若能直接
arr[-1]
,这无疑是最简单、最快速、最优的解决方案,但是在js 里面,负数的索引就不行,会返回undefined
。只能使用数组的length-1
来解决
python访问数组最后一个元素
arr = [1, 2, 3, 4, 5]
last_element = arr[-1] # 5
2、方案一:使用数组 length - 1
这个方法是
最常见
的,不会影响原数组
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// 方案一:
console.log('最后一项:', arr[arr.length - 1], arr); // 10
3、方案二:Array.prototype.slice()
此方法
MDN
的解释是:slice() 方法返回一个新的数组对象,这一对象是一个由 start 和 end 决定的原数组的浅拷贝
(包括 start,不包括 end),其中 start 和 end 代表了数组元素的索引。原始数组不会被改变。
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// 方案二:
let last = arr.slice(-1)[0];
console.log('最后一项:', last, '原数组:', arr);
但是,如若 获取了 最后一个 元素,还修改了它,
基本数据类型是没什么事情
但是引用数据类型
就会有问题,是因为slice
返回的是对原数组的一个浅拷贝
let last2 = [{ name: "呆呆狗" }, { name: "笨笨狗" }, { name: "踩踩狗" }]
let last3 = last2.slice(-1)[0];
console.log('最后一项:', last3, '原数组:', last2);
last3.name = '截取最后一项后修改'
4、方案三:Array.prototype.pop()
pop() 方法从数组中
删除最后一个元素
,并返回该元素的值
。此方法会更改数组的长度
。
let arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
// 方案三:
let last4 = arr.pop();
console.log('最后一项:', last4, '原数组:', arr);
5、方案四:Array.prototype.at()
at() 方法接收一个整数值并返回该索引对应的元素,允许
正数和负数
。负整数从数组中的最后一个元素开始倒数
。