JavaScript Matrici concatenanti


Esempio

Due matrici

var array1 = [1, 2];
var array2 = [3, 4, 5];
3
var array3 = array1.concat(array2);  // returns a new array
6
var array3 = [...array1, ...array2]

Risultati in una nuova Array :

[1, 2, 3, 4, 5]

Matrici multiple

var array1 = ["a", "b"],
    array2 = ["c", "d"],
    array3 = ["e", "f"],
    array4 = ["g", "h"];
3

Fornire più argomenti Array a array.concat()

var arrConc = array1.concat(array2, array3, array4);
6

Fornisci più argomenti a []

var arrConc = [...array1, ...array2, ...array3, ...array4]

Risultati in una nuova Array :

["a", "b", "c", "d", "e", "f", "g", "h"]

Senza copiare la prima matrice

var longArray = [1, 2, 3, 4, 5, 6, 7, 8],
    shortArray = [9, 10];
3

Fornire gli elementi di shortArray come parametri per spingere utilizzando Function.prototype.apply

longArray.push.apply(longArray, shortArray);
6

Utilizzare l'operatore di diffusione per passare gli elementi di shortArray come argomenti separati da push

longArray.push(...shortArray)

Il valore di longArray è ora:

[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Si noti che se il secondo array è troppo lungo (> 100.000 voci), è possibile che si verifichi un errore di overflow dello stack (a causa di come funziona apply ). Per sicurezza, puoi invece iterare:

shortArray.forEach(function (elem) {
    longArray.push(elem);
});

Valori di matrice e non di matrice

var array = ["a", "b"];
3
var arrConc = array.concat("c", "d");
6
var arrConc = [...array, "c", "d"]

Risultati in una nuova Array :

["a", "b", "c", "d"]

Puoi anche mescolare gli array con i non-array

var arr1 = ["a","b"];
var arr2 = ["e", "f"];

var arrConc = arr1.concat("c", "d", arr2);

Risultati in una nuova Array :

["a", "b", "c", "d", "e", "f"]