JavaScript - 获取数组中的最后一项

时间:2010-07-09 16:01:41

标签: javascript dom

这是我的代码:

 function insert(){
  var loc_array = document.location.href.split('/');
  var linkElement = document.getElementById("waBackButton");
  var linkElementLink = document.getElementById("waBackButtonlnk");
  linkElement.innerHTML=loc_array[loc_array.length-2];
  linkElementLink.href = loc_array[loc_array.length];
 }

我希望linkElementLink.href获取除数组中最后一项之外的所有内容。现在它被打破了,它之前的项目得到倒数第二个项目。

5 个答案:

答案 0 :(得分:42)

我不太确定你要做什么。但您可以使用slice对数组进行切片:

loc_array = loc_array.slice(0, -1);

答案 1 :(得分:35)

优先于pathname使用href来仅检索链接的路径部分。否则,如果后缀为?query#fragment,或路径为/(无父级),则会产生意外结果。

linkElementLink.href= location.pathname.split('/').slice(0, -1).join('/');

(但是,你当然可以说:)

linkElementLink.href= '.';

不要这样做:

linkElement.innerHTML=loc_array[loc_array.length-2];

从任意字符串设置HTML是危险的。如果您从中获取此文本的URL包含HTML中特殊的字符,例如<&,则用户可以注入标记。如果你可以在URL中获得<script>(你不应该这样,因为它无效,但是某些浏览器可能会让你失望)你会有跨站点脚本安全漏洞。

要设置元素的文本而不是HTML,请使用document.createTextNode('string')并将其附加到元素或分支代码以使用innerText(IE)或textContent(其他现代浏览器。)

答案 2 :(得分:18)

如果使用 lodash ,可以使用http://docs.opencv.org/2.4/modules/core/doc/basic_structures.html#mat-create

  

_ .initial(array):获取数组的最后一个元素。

实施例

_.initial([1, 2, 3]);
// → [1, 2]

答案 3 :(得分:1)

根据您是否要重复使用数组,您只需使用pop()方法一次删除最后一个元素。

答案 4 :(得分:0)

linkElementLink.href = loc_array[loc_array.length];在数组中添加一个新的空槽,因为数组从0运行到array.length-1;所以你返回一个空槽。

linkElement.innerHTML=loc_array[loc_array.length-2];如果使用括号,则只获取一个索引的内容。我不确定这是不是你想要的?下一节将介绍如何获得多个索引。

要获得.href所需的内容,您需要对数组进行切片。 linkElementLink.href = loc_array.slice(0,loc_array.length-1); 或使用负数来计算结尾 linkElementLink.href = loc_array.slice(0,-1); 这是更快的方式。

另请注意,当从数组直接获取内容时,您将获得与.toString()方法相同的内容,即item1,item2,item3。如果您不想使用逗号,则需要使用.join()。像array.join('-')一样会返回item1-item2-item3。以下是所有数组方法http://www.w3schools.com/jsref/jsref_obj_array.asp的列表。这是一个很好的资源。