返回Coffeescript中数组的前n个元素

时间:2014-11-19 11:20:23

标签: coffeescript

在Coffeescript中返回数组前n个元素的最佳方法是什么?如果数组中的元素少于n个,则应该不变地返回数组。这是我提出的两个解决方案:

使用for循环和中断:

arr = ["one", "two", "three", "four", "five"]
n = 3
firstn = []
for i in [0..n-1]
  if arr[i]
    firstn.push(arr[i])
  else
    break

使用列表理解

arr = ["one", "two", "three", "four", "five"]
n = 3
firstn = (arr[i] for i in [0..n-1] when arr[i])

这两种方法都有效,但两者都不是很干净。第一眼不是很清楚。第二个稍微好一点,但它不必要地遍历整个数组,并为输出中的每个元素查找两次值。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

使用数组切片(http://coffeescript.org/#language

arr = ["one", "two", "three", "four", "five"]

arr[..2]
如果数组中的元素少于n个(只返回整个数组)

可以正常工作