var arr = [1,2,3],x = 5; for (var i=0; i<x; i++) { arr.push(x); } console.log(arr); //=> [1,3,5,5]
有没有办法在不使用for循环的情况下执行此操作?
更新
即使有移动者聪明的解决方案,for循环似乎是最高效的
Benchmarks on jsperf
如果你受到惩罚,只需使用:
for (var i = 0; i < x; i++) arr.push(x);
在一行:-)
除此之外,您最好的选择将是以下方面的功能:
arr = appendXCopiesOfX (arr,x);
但是我认为你并没有真正获得任何东西,因为如上所述,理解这么小的循环应该没什么问题.
总而言之,这可能是浪费时间和精力来改善你现在拥有的东西.