在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])
这两种方法都有效,但两者都不是很干净。第一眼不是很清楚。第二个稍微好一点,但它不必要地遍历整个数组,并为输出中的每个元素查找两次值。还有更好的方法吗?
答案 0 :(得分:1)
使用数组切片(http://coffeescript.org/#language)
arr = ["one", "two", "three", "four", "five"]
arr[..2]
如果数组中的元素少于n个(只返回整个数组),
可以正常工作