javascript – 将数组与自身连接

我正在尝试实现Array.repeat,所以

[3].repeat(4) // yields
=> [3, 3, 3, 3]

……让我发疯

试过这个:

Array::repeat = (num)->
  array = new Array
  for n in [0..num]
    array.concat(this)
  array

但是[3] .repeat(x)总是返回[].在哪里搞砸了?或者有更好的方法吗?

最后结果:

Array::repeat = (num)->
  array = new Array
  return array if num < 1
  for n in [1..num]
    array = array.concat(this)
  array

['a'].repeat(5)
=> ['a', 'a', 'a', 'a', 'a']

解决方法:

array.concat返回一个新数组,不会修改现有数组.

你需要写

array = array.concat(dup)

或者,您可以使用push(),它会修改原始数组:

array.push.apply(array, dup)
上一篇:将d3.js JavaScript函数转换为CoffeeScript


下一篇:javascript – 如何在CoffeeKup模板中使用文字HTML?