Подтвердить что ты не робот

Javascript Array: получить "диапазон" элементов

Есть ли эквивалент для ruby-массива [n..m] в Javascript?

Например:

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

Спасибо

4b9b3361

Ответ 1

Используйте array.slice(begin [, end]).

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

Последний индекс не является включающим; чтобы имитировать поведение рубина, вы должны увеличивать end значение. Так что я думаю, что slice ведет себя больше как a[m...n] в рубине.

Ответ 3

Второй аргумент в slice также является необязательным:

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 ссылаются на ссылку .

Ответ 4

Ruby и Javascript имеют метод среза, но обратите внимание, что второй аргумент для среза в Ruby - это длина, но в JavaScript это индекс последнего элемента:

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