Подтвердить что ты не робот

Как сделать "плоский толчок" в javascript?

Я хочу направить все отдельные элементы исходного массива на целевой массив,

target.push(source);

помещает только ссылку источника в список целей.

Вместо этого хочу сделать:

for (i = 0; i < source.length; i++) {
    target.push(source[i]);
}

Есть ли способ в javascript сделать это более элегантным, без явно кодирования цикла повторения?

И пока я нахожусь в этом вопросе, каков правильный термин? Я не думаю, что "плоский толчок" правильный. Googling не дал никаких результатов, поскольку источником и целью являются оба массива.

4b9b3361

Ответ 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);

Ответ 2

apply делает то, что вы хотите:

var target = [1,2];
var source = [3,4,5];

target.push.apply(target, source);

alert(target); // 1, 2, 3, 4, 5

MDC - примените

Вызывает функцию с заданным значением значение и аргументы, предоставленные в качестве массив.

Ответ 3

Вы можете просто использовать синтаксис распространения:

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);