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

最後の要素だけが必要ですか?あなたはこれを行うことができます:

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

この場合、最初に文字列を定義する必要があります。これは理にかなっています。文字列リテラルから最後の要素を取得したいという状況は見当たりません。ただ書いそれで終わりstr = "456"です。

于 2012-11-16T13:13:49.917 に答える
2

thisdeference で定義されています (または、少なくともarrayを参照していません)。

単純な方法は次の 2 行です。

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

実際に見てください。

于 2012-11-16T13:10:25.497 に答える
0

Backbone.js などの他の特定のライブラリ/フレームワークに含まれているアンダースコアを使用します。

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

参照: http://underscorejs.org/#last

于 2014-04-22T20:48:50.390 に答える