【发布时间】:2011-11-15 22:26:53
【问题描述】:
在 CoffeeScript 中将值附加到数组的规定方法是什么?我查看了 PragProg CoffeeScript 书,但它只讨论了创建、切片和拼接以及迭代,而不是追加。
【问题讨论】:
标签: arrays append coffeescript
在 CoffeeScript 中将值附加到数组的规定方法是什么?我查看了 PragProg CoffeeScript 书,但它只讨论了创建、切片和拼接以及迭代,而不是追加。
【问题讨论】:
标签: arrays append coffeescript
好旧的push 仍然有效。
x = []
x.push 'a'
【讨论】:
Array 原型方法,因为那里已经有很多好的 JavaScript 文档。例如,请参阅developer.mozilla.org/en/JavaScript/Reference/Global_Objects/…
x << 'a' 工作。
使用列表推导更好。
例如,而不是这样:
things = []
for x in list
things.push x.color
改为这样做:
things = (x.color for x in list)
【讨论】:
things = list,它更简洁。
colors = (item.color for item in list)
如果您正在链接调用,那么您希望追加返回数组而不是它的长度。 在这种情况下,您可以使用 .concat([newElement])
必须是 [newElement] 因为 concat 需要一个与其连接的数组一样的数组。 效率不高,但在正确的设置下看起来很酷。
【讨论】:
concat 返回一个由数组 A + 数组 B 的元素构造的新数组。保留对对象的引用,因此对数组 A、数组 B 或 concat 结果中引用的对象的更改也将反映在其他数组中。