Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中将扁平数组推送到另一个数组_Javascript_Underscore.js - Fatal编程技术网

在javascript中将扁平数组推送到另一个数组

在javascript中将扁平数组推送到另一个数组,javascript,underscore.js,Javascript,Underscore.js,因此,我: var arr = [1, 2], numArr = [3, 4, 5]; // I want arr = [1, 2, 3, 4, 5]; 所以我希望能够把努马尔推进arr,但关键是我想在适当的地方做到这一点。(这意味着我不会生成新数组并将其分配给arr) 现在我正在使用: [].push.apply(arr, numArr); 但我想知道是否有更干净的替代方法使用下划线或原生JS。是的,有更干净的替代方法 numArr.forEach(function (x) {

因此,我:

var arr = [1, 2],
    numArr = [3, 4, 5];
// I want arr = [1, 2, 3, 4, 5];
所以我希望能够把努马尔推进arr,但关键是我想在适当的地方做到这一点。(这意味着我不会生成新数组并将其分配给arr)

现在我正在使用:

[].push.apply(arr, numArr);

但我想知道是否有更干净的替代方法使用下划线或原生JS。

是的,有更干净的替代方法

numArr.forEach(function (x) {
    arr.push(x);
});
请注意,
apply
在数千个元素上停止工作


据我所知,下划线与此无关(不要使用
.extend

对于任何回答的人,请注意,这不符合不生成新数组的条件。@Nit:但是,生成一个新的数组通常被认为更干净:-)@Bergi如果你的数据集很大的话就不合理了。哦,我讨厌使用
numArr.forEach([].push,arr)不是等价的…介意评论一下吗?我是否错过了一个细节并进行了不公平的测试?只要不超过调用堆栈,询问者发布的原始代码就会更快。@Nit:这并不不公平,但有一点可能是无意的:尝试在拆卸中添加
console.log(a.length)
。(安装程序在每个测试之外运行,但还有另一个循环,因此阵列的大小会有所不同。)不过,您是对的;我开始用
for
循环来写我的答案,并将它改为
forEach
,而没有更新下一段
forEach
的速度要慢得多。(
push.apply
在Chrome中仍然优于
for
,但在Firefox中则不然。)