Javascript 将数组连接到自身以复制它

Javascript 将数组连接到自身以复制它,javascript,arrays,Javascript,Arrays,在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] 在JavaScript中不能对数组进行乘法。您当前使用的解决方案是正确的。 请注意,它使用复制的项创建一个单独的数组,并且不会更改原始项 对于任意N,array*N可以这样编写 [].co

在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]

在JavaScript中不能对数组进行乘法。您当前使用的解决方案是正确的。
请注意,它使用复制的项创建一个单独的数组,并且不会更改原始项

对于任意N,
array*N
可以这样编写

[].concat.apply([], Array.apply(0, Array(N)).map(function() { return data }))

当然,与python版本相比,这很糟糕,但这是javascript所能做的最好的。如果您正在寻找更好的语法,请尝试coffeescript。

在ECMAScript 6中,您可以使用:

[].concat.apply([],数组(N).fill(数组));
可以使用以下方法简化:


但是,请注意,与填充不同,排列运算符不能是多填充的。

我不确定您的问题是什么。你是在问什么是最佳实践吗?@Ofiris请把你的问题说清楚。@Gohn67,是的,我想知道是这样做的,还是有更令人愉快的语法,比如
Python
one。
[].concat(...Array(N).fill(array));