Ответ 1
Вы можете использовать метод 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);
Я хочу направить все отдельные элементы исходного массива на целевой массив,
target.push(source);
помещает только ссылку источника в список целей.
Вместо этого хочу сделать:
for (i = 0; i < source.length; i++) {
target.push(source[i]);
}
Есть ли способ в javascript сделать это более элегантным, без явно кодирования цикла повторения?
И пока я нахожусь в этом вопросе, каков правильный термин? Я не думаю, что "плоский толчок" правильный. Googling не дал никаких результатов, поскольку источником и целью являются оба массива.
Вы можете использовать метод 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);
apply
делает то, что вы хотите:
var target = [1,2];
var source = [3,4,5];
target.push.apply(target, source);
alert(target); // 1, 2, 3, 4, 5
MDC - примените
Вызывает функцию с заданным значением значение и аргументы, предоставленные в качестве массив.
Вы можете просто использовать синтаксис распространения:
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1 = [...arr1, ...arr2];
// [0, 1, 2, 3, 4, 5]
В качестве альтернативы:
var arr1 = ['a', 'b', 'c'];
var arr2 = [1, 2, 3, ...arr1];
// [1, 2, 3, 'a', 'b', 'c']
Demo:
var arr1 = [0, 1, 2];
var arr2 = [3, 4, 5];
arr1 = [...arr1, ...arr2];
console.log(arr1);