2010-08-26 13 views
35

¿Hay un equivalente para el conjunto de rubí [n..m] en Javascript?Javascript Matriz: get 'rango' de elementos

Por ejemplo:

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

Gracias

+3

sí, CoffeeScript! [Intervalo Nueva y mejorada, rebanada, de empalme y la sintaxis de bucle] (https://github.com/jashkenas/coffee-script/issues/835). –

Respuesta

60

Utilice la función array.slice(begin [, end]).

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

El último índice no incluye; Para imitar el comportamiento de Ruby, debes incrementar el valor de end. Así que supongo que slice se comporta más como a[m...n] en rubí.

+3

> El último índice es no inclusivo pasx

+1

Debe notarse que esto también modifica la matriz original. – Brant

2

Ruby y JavaScript ambos tienen una slice method, pero cuidado con que el segundo argumento para cortar en Ruby es la longitud, pero en JavaScript que es el índice del último elemento:

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

El segundo argumento en slice es opcional, también:

var fruits = ['apple','banana','peach','plum','pear']; 
var slice1 = fruits.slice(1, 3); //banana, peach, plum 
var slice2 = fruits.slice(3); //plum, pear 

también se puede pasar un número negativo, que sel ECTS desde el final de la matriz:

var slice3 = fruits.slice(-3); //peach, plum, pear 

Así es la referencia Escuelas W3 link.

+4

¿Qué le parece vincular a la referencia javascript de Mozilla, que es mucho más informativa y está mejor escrita que el sitio de las escuelas W3 (que no tiene nada que ver con el W3C)? https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/slice –

Cuestiones relacionadas