获取数组中的最后一项

新手上路,请多包涵

到目前为止,这是我的 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" ,如果是,则改为获取倒数第三项。

原文由 balexander 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 766
2 个回答
if (loc_array[loc_array.length - 1] === 'index.html') {
 // do something
 } else {
 // something else
 }

如果您的服务器为“index.html”和“inDEX.htML”提供相同的文件,您也可以使用: .toLowerCase()

不过,如果可能的话,你可能会考虑在服务器端做这个:它会更干净,并且适合没有 JS 的人。


编辑-ES-2022

使用 ES-2022 Array.at() ,上面的代码可以这样写:

 if (loc_array.at(-1) === 'index.html') {
 // do something
 } else {
 // something else
 }

原文由 Aaron Butacov 发布,翻译遵循 CC BY-SA 4.0 许可协议

不确定是否有缺点,但这看起来很简洁:

 arr.slice(-1)[0]

要么

arr.slice(-1).pop()

如果数组为空,两者都将返回 undefined

原文由 kritzikratzi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题