在Python
:
>>> [1,2,3,4] * 2
[1, 2, 3, 4, 1, 2, 3, 4]
使用JavaScript
的方法是什么?
目前正在使用:
var data = [1,2,3,4];
data.concat(data);
//[1, 2, 3, 4, 1, 2, 3, 4]
答案 0 :(得分:3)
你无法在JavaScript中增加数组。您使用Array.concat的当前解决方案是正确的。 请注意,它会使用复制的项目创建单独的数组,并且不会更改原始数据。
答案 1 :(得分:2)
对于任意N,array * N
可以像这样写出
[].concat.apply([], Array.apply(0, Array(N)).map(function() { return data }))
当然,与python版本相比,这很糟糕,但它是最好的javascript可以做到的。如果您正在寻找更好的语法,请尝试使用coffeescript。
答案 2 :(得分:0)
在ECMAScript 6中,您可以使用Array.prototype.fill
:
[].concat.apply([], Array(N).fill(array));
可以使用spread operator简化:
[].concat(...Array(N).fill(array));
但请注意,与fill
不同,展开运算符无法进行多边形填充。