Javascript数组:获取'范围'的项目

时间:2010-08-26 23:08:55

标签: javascript ruby arrays range

Javascript中是否有等效的ruby数组[n..m]?

例如:

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

由于

4 个答案:

答案 0 :(得分:73)

使用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值。所以我猜slice在ruby中的行为更像a[m...n]

答案 1 :(得分:7)

a.slice(0, 3)在你的例子中等同于你的功能。

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

答案 2 :(得分:5)

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学校的参考资料link

答案 3 :(得分:2)

Ruby和Javascript都有一个slice method,但要注意在Ruby中切片的第二个参数是长度,但在JavaScript中它是最后一个元素的索引:

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