【问题标题】:JavaScript Array: get "range" of itemsJavaScript Array:获取项目的“范围”
【发布时间】:2011-04-04 13:27:07
【问题描述】:

在 JavaScript 中是否有 ruby​​ 的 array[n..m] 等效项?

例如:

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

【问题讨论】:

标签: javascript ruby arrays range


【解决方案1】:

slice 中的第二个参数也是可选的:

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

你也可以传递一个负数,它从数组的末尾选择:

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

这是 W3 Schools 参考资料link

【讨论】:

【解决方案2】:

使用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]

【讨论】:

  • >最后一个索引是不包含的
【解决方案3】:

【讨论】:

  • 实际上应该是a.slice(0, 3)。 JavaScript 中的 slice 不包含结束索引。
【解决方案4】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 2017-02-20
    • 1970-01-01
    • 2020-01-15
    相关资源
    最近更新 更多