web-dev-qa-db-ja.com

Javascript配列:アイテムの「範囲」を取得

JavascriptにRubyのarray [n..m]に相当するものはありますか?

例えば:

>> a = ['a','b','c','d','e','f','g']
>> a[0..2]
=> ['a','b','c']

ありがとう

41
shdev

array.slice(begin [, end]) 関数を使用します。

var a = ['a','b','c','d','e','f','g'];
var sliced = a.slice(0, 3); //will contain ['a', 'b', 'c']

最後のインデックスは包括的ではありません;Rubyの振る舞いを模倣するには、end値をインクリメントする必要があります。したがって、slicea[m...n] Rubyで。

76
Vivin Paliath

a.slice(0, 3)は、この例の関数に相当します。

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice

8
Robert

sliceの2番目の引数もオプションです。

var fruits = ['Apple','banana','Peach','Plum','pear'];
var slice1 = fruits.slice(1, 3);  //banana, Peach, Plum
var slice2 = fruits.slice(3);  //Plum, pear

配列の末尾から選択する負の数を渡すこともできます。

var slice3 = fruits.slice(-3);  //Peach, Plum, pear

W3 Schoolsリファレンス link です。

5
David Hoerster

RubyとJavascriptの両方に スライスメソッド がありますが、スライスの2番目の引数Rubyは長さですが、JavaScriptでは最後のインデックスです素子:

var shortArray = array.slice(start, end);
2
Douglas