[英]Cons (:) in CoffeeScript?
Haskell提供了:
函数以将项目添加到列表的前面:
*Main> :t (:)
(:) :: a -> [a] -> [a]
例:
*Main> 1 : 2 : 3 : []
[1,2,3]
CoffeeScript是否存在这样的功能/运算符?
我将使用本机unshift
方法,尽管它会返回结果数组的长度, 而不是数组本身的长度,所以您不能像示例所示那样链接调用。
作为一种有趣的选择, CoffeeScript的ranges功能允许进行splicing ,可以将其值添加到现有数组的前面:
array = [ 1, 2, 3 ]
array[..0] = [ 4, array[0] ]
console.log array # [ 4, 1, 2, 3 ]
更精确地讲,它删除数组的第一个元素,并在赋值的右侧添加两个元素(您所需的前缀和原始0值)。
我们甚至可以通过将其包装在括号中并引入数组的引用变量来链接它:
array = [ 1, 2, 3 ]
(( array[..0] = [ 4, array[0] ] ) and array).unshift(5)
console.log array # [ 5, 4, 1, 2, 3 ]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.