以下是我迄今为止的JavaScript代码:

var linkElement = document.getElementById("BackButton");
var loc_array = document.location.href.split('/');
var newT = document.createTextNode(unescape(capWords(loc_array[loc_array.length-2]))); 
linkElement.appendChild(newT);

目前,它从URL中获取数组中倒数第二项。但是,我想检查数组中的最后一个项目是否为“index.html”,如果是这样,则获取倒数第三个项目。


当前回答

2022年ECMA

使用ECMA 2022,您可以在()处获得一个新属性。要从数组或字符串中获取最后一个元素,可以在中使用负索引-1。[1,2,3].在(-1)处。https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/at

如果您希望像arr.last这样更流畅地接收最后一项,则可以为数组对象定义自己的属性。

if(!Array.protocol.hasOwnProperty(“last”)){Object.defineProperty(Array.prototype,“last”{获取(){返回此。在(-1);}});}a=[1,2,3];console.log(a.last);

其他回答

我认为这应该很好。

var arr = [1, 2, 3];
var last_element = arr.reverse()[0];

只需反转数组并获得第一个元素。

编辑:如下所述,原始阵列将被反转。为了避免这种情况,您可以将代码更改为:

var arr = [1, 2, 3];
var last_element = arr.slice().reverse()[0];

这将创建原始阵列的副本。

简单的回答

const array = [1,2,3]
array[array.length - 1]

使用ES6/ES2015排列运算符(…),可以执行以下操作。

常量数据=[1,2,3,4]const[last]=[…data].reverse()console.log(最后一个)

请注意,使用扩展运算符和反转,我们没有对原始数组进行变异,这是获取数组最后一个元素的纯方法。

var str = ["stackoverflow", "starlink"];
var last = str[str.length-1];//basically you are putting the last index value into the array and storing it in la

根据ES2022,您可以使用Array.at()方法,该方法获取一个整数值并返回该索引处的项。允许正整数和负整数。负整数从数组中的最后一项开始倒数。

演示:

const href='www.abc.com/main/index.html';constloc_array=href.split('/');//要访问数组中的元素,我们可以使用array.at()console.log(loc_array.at(-1));//这将返回最后一个索引处的项目。