web-dev-qa-db-fra.com

Javascript Array: obtenez une 'gamme' d'articles

Existe-t-il un équivalent pour le tableau de Ruby [n..m] en Javascript?

Par exemple:

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

Merci

41
shdev

Utilisez la fonction array.slice(begin [, end]) .

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

Le dernier index n'est pas inclusif; pour imiter le comportement de Ruby, vous devez incrémenter la valeur end. Donc je suppose que slice se comporte plus comme a[m...n] en Ruby.

76
Vivin Paliath

a.slice(0, 3) Serait l'équivalent de votre fonction dans votre exemple.

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

8
Robert

Le deuxième argument de slice est également facultatif:

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

Vous pouvez également passer un nombre négatif, qui sélectionne à la fin du tableau:

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

Voici la référence des écoles W3 lien .

5
David Hoerster

Ruby et Javascript ont tous les deux un méthode de tranche , mais attention que le deuxième argument à couper en Ruby est la longueur, mais en JavaScript c'est l'index du dernier élément:

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