访问TypeScript数组的最后一个元素

时间:2015-07-07 18:52:16

标签: javascript typescript

是否有符号来访问TypeScript中数组的最后一个元素?在Ruby中,我可以说:MM/DD/YYYY。有类似的东西吗?

7 个答案:

答案 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 什么时候会开始支持它(它现在还不能用于我),但我猜它应该很快就会可用。