是否有符号来访问TypeScript中数组的最后一个元素?在Ruby中,我可以说:MM/DD/YYYY
。有类似的东西吗?
答案 0 :(得分:41)
您可以通过索引访问数组元素。数组中最后一个元素的索引将是array-1的长度(因为索引基于零)。
这应该有用。
var items: String[] = ["tom", "jeff", "sam"];
alert(items[items.length-1])
Here是一个工作样本。
答案 1 :(得分:18)
如果您之后不需要数组,可以使用
array.pop()
但是会从数组中删除元素!
答案 2 :(得分:6)
这是一个汇总在一起的选项,适用于像我这样迟到的人。
var myArray = [1,2,3,4,5,6];
// Fastest method, requires the array is in a variable
myArray[myArray.length - 1];
// Also very fast but it will remove the element from the array also, this may or may
// not matter in your case.
myArray.pop();
// Slowest but very readable and doesn't require a variable
myArray.slice(-1)[0]
答案 3 :(得分:5)
我将把这个作为我对 stackoverflow 的第一个贡献:
var items: String[] = ["tom", "jeff", "sam"];
const lastOne = [...items].pop();
注意:与不带展开运算符的 pop()
的使用不同,这种方法不会从原始数组中删除最后一个元素。
答案 4 :(得分:2)
这是尚未提及的另一种方式:
items.slice(-1)[0]
答案 5 :(得分:2)
如果您更需要此调用,则可以全局声明它:
interface Array<T> {
last(): T | undefined;
}
if (!Array.prototype.last) {
Array.prototype.last = function () {
if (!this.length) {
return undefined;
}
return this[this.length - 1];
};
}
那你就可以打电话
items.last()
答案 6 :(得分:1)
自 2021 年 7 月起,浏览器开始支持数组的 at()
方法,该方法允许以下语法:
const arr: number[] = [1, 2, 3];
// shows 3
alert(arr.at(-1));
我不清楚 TypeScript 什么时候会开始支持它(它现在还不能用于我),但我猜它应该很快就会可用。