Tha*_*you 8 javascript arrays concat pad
我想这与数组填充类似,但我想知道它是否可以简化.
var arr = [1,2,3],
x = 5;
for (var i=0; i<x; i++) {
arr.push(x);
}
console.log(arr);
//=> [1, 2, 3, 5, 5, 5, 5, 5]
Run Code Online (Sandbox Code Playgroud)
有没有办法在不使用for循环的情况下执行此操作?
更新
即使有移动器聪明的解决方案,for循环似乎是最高性能的
除非您因编写的每一行代码而受到惩罚,否则该代码就可以了:简洁且易于理解。
如果确实受到处罚,请使用:
for (var i = 0; i < x; i++) arr.push(x);
Run Code Online (Sandbox Code Playgroud)
在一行上:-)
除此之外,您最好的选择是遵循以下功能:
arr = appendXCopiesOfX (arr, x);
Run Code Online (Sandbox Code Playgroud)
但是我认为您并没有真正获得任何收益,因为如上所述,理解这么小的循环应该没有什么问题。
总而言之,尝试改善当前的状况可能会浪费时间和精力。
没有for循环:
var arr = [1,2,3], x = 5;
arr = arr.concat(Array.apply(null, Array(x)).map(function() { return x; }));
// or even
arr = arr.concat(Array.apply(null, Array(x)).map(x.valueOf, x));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8125 次 |
最近记录: |