dr *_*rry 25 javascript arrays push flatten
我想将源数组的所有单个元素推送到目标数组,
target.push(source);
Run Code Online (Sandbox Code Playgroud)
将源的引用放在目标列表上.
而不是我想做的事:
for (i = 0; i < source.length; i++) {
target.push(source[i]);
}
Run Code Online (Sandbox Code Playgroud)
有没有一种方法在javascript中更优雅,没有明确编码重复循环?
虽然我在这,但正确的用语是什么?我不认为"平推"是正确的.谷歌搜索没有产生任何结果,因为源和目标都是数组.
gbl*_*zex 49
apply 做你想要的:
var target = [1,2];
var source = [3,4,5];
target.push.apply(target, source);
alert(target); // 1, 2, 3, 4, 5
Run Code Online (Sandbox Code Playgroud)
MDC - 申请
调用具有给定值的函数和作为数组提供的 参数.
Dar*_*rov 24
你可以使用concat方法:
var num1 = [1, 2, 3];
var num2 = [4, 5, 6];
var num3 = [7, 8, 9];
// creates array [1, 2, 3, 4, 5, 6, 7, 8, 9]; num1, num2, num3 are unchanged
var nums = num1.concat(num2, num3);
Run Code Online (Sandbox Code Playgroud)
kir*_*ala 15
更简单的方法来做到这一点。
var arr1 = [1,2,3]
var arr2 = [4,5,6]
arr1.push(...arr2) //arr1 now contains [1,2,3,4,5,6]
Run Code Online (Sandbox Code Playgroud)
您可以简单地使用传播语法:
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1 = [...arr1, ...arr2];
// [0, 1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)
或者:
var arr1 = ['a', 'b', 'c'];
var arr2 = [1, 2, 3, ...arr1];
// [1, 2, 3, 'a', 'b', 'c']
Run Code Online (Sandbox Code Playgroud)
演示:
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1 = [...arr1, ...arr2];
// [0, 1, 2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)