Javascript中是否有等效的ruby数组[n..m]?
例如:
>> a = ['a','b','c','d','e','f','g']
>> a[0..2]
=> ['a','b','c']
由于
答案 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);