10

在使用 javascript 对字符串进行拆分后,我试图获取最后一个数组项。

    var str ="Watch-The-Crap-456".split('-')[this.length];
    console.log(str);​​​ 
   // want it to console log 456, now it consoles WATCH which is in array[0]

我试图[this.length - 1]让我得到最后一个数组项,但它给了我未定义的,我知道你们中的一些人可能会说创建另一个变量来存储数组,但是看看我们是否可以让事情变得更短很有趣。

4

4 回答 4

36

怎么样:

"Watch-The-Crap-456".split('-').pop(); // returns 456
于 2012-11-16T13:14:52.990 回答
2

this在尊重中定义(或至少不引用数组)。

一种天真的方法是两行:

var str ="Watch-The-Crap-456".split('-');
console.log(str[str.length - 1]);​​​

看到它在行动

于 2012-11-16T13:10:25.497 回答
2

你只想要最后一个元素吗?你可以这样做:

var str ="Watch-The-Crap-456";
console.log(str.slice(str.lastIndexOf('-')+1));​

在这种情况下,您必须首先定义您的字符串,这是有道理的。我没有看到任何你想从字符串文字中获取最后一个元素的情况,你只需编写str = "456"并完成它。

于 2012-11-16T13:13:49.917 回答
0

使用下划线,它包含在某些其他库/框架中,例如 Backbone.js:

_.last(str.split('-'));

见:http ://underscorejs.org/#last

于 2014-04-22T20:48:50.390 回答