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

返回Coffeescript中数组的前n个元素,coffeescript,Coffeescript,在Coffeescript中返回数组前n个元素的最佳方法是什么?如果数组中的元素少于n个,则应原封不动地返回数组。以下是我提出的两个解决方案: 使用for循环和break: 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",

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

使用for循环和break:

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])
这两种方法都可以,但都不是很干净。第一个问题乍一看不是很清楚。第二个稍好一些,但它不必要地迭代整个数组,并为输出中的每个元素查找两次值。有更好的方法吗?

使用数组切片()

如果数组中的元素少于n个(仅返回整个数组),则可以根据需要工作

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

arr[..2]