簡體   English   中英

在JavaScript中動態添加數組數組

[英]Adding array of arrays dynamically in javascript

我試圖在javascript中動態添加數組數組。 我需要以下格式的數據-

var dataArray = [[],[],[],.....,[]];

如何初始化這種數組? 假設如果要添加三個數組,則可以如下初始化:

var dataArray = [[],[],[]];

這將僅接受三個要添加的記錄。 但是,如果添加大量數組該怎么辦? 在這里,我不知道輸入的數據量。 我嘗試使用concat()和merge()方法,這些方法將內容直接添加到單個數組中,但這不是我想要的。 有人可以幫我嗎?

您可以像這樣將數組構建或添加到數組中:

var dataArray = [];
dataArray.push([1,2,3]);
dataArray.push([3,4,5]);

console.log(dataArray);   // [[1,2,3], [3,4,5]]

或者,如果要向子數組添加元素:

var dataArray = [];
dataArray.push([1,2,3]);
dataArray.push([3,4,5]);

dataArray[0].push(4);
dataArray[1].push(9);
console.log(dataArray);   // [[1,2,3,4], [3,4,5,9]]

您可以通過將一個數組分配給外部數組的元素來初始化子數組。 然后,您可以直接在子數組元素上使用數組操作:

// create a sub-array element
dataArray[2] = [];
dataArray[2].push(8);
dataArray[2].push(7);
console.log(dataArray[2]);  // [8,7]
console.log(dataArray);     // [[1,2,3,4], [3,4,5,9], [8,7]]

您似乎不了解的關鍵是,一個數組就是這樣。 它是一個外部數組,其中外部數組中的每個元素本身就是一個數組。 您可以使用普通的數組方法對外部數組或內部數組進行操作。 要對內部數組進行操作,您可以從外部數組中獲取該元素,然后將其視為一個數組。 例如:

var dataArray = [];
dataArray.push([1,2,3]);
dataArray.push([3,4,5]);
console.log(dataArray);   // [[1,2,3], [3,4,5]]

var innerArray = dataArray[0];
console.log(innerArray);   // [1,2,3]
innerArray.push(12);
console.log(innerArray);   // [1,2,3,12]
innerArray.legnth = 2;
console.log(innerArray);   // [1,2]
innerArray.push(9,8,7);
console.log(innerArray);   // [1,2,9,8,7]
innerArray.splice(1,2);
console.log(innerArray);   // [1,8,7]

您已經寫道“我正在嘗試在javascript中動態添加數組數組”
簡單的方法是使用Array.prototype.push方法:

var arr1 = [1,2], arr2 = [3,4], arr3 = [5,6], arr4 = [7,8], arr5 = [9,10],
    dataArray = [];

[].push.apply(dataArray, [arr1, arr2, arr3, arr4, arr5]);
console.log(JSON.stringify(dataArray, 0, 4));

console.log輸出:

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

您可以通過多種方式來執行此操作。 一個簡單的可能是

 var arrayN = n => Array(n).fill([]) document.write("<pre>" + JSON.stringify(arrayN(10)) + "</pre>") 

換個角度考慮,如果您已經有數組數組,那么將它們串聯在一起的最簡化方法應該是使用新的散布運算符,例如;

 var arr = [[1,2,3],[1,3,5]], brr = [[3,2,1],[7,8,9]]; arr.push(...brr); document.write("<pre>" + JSON.stringify(arr) + "</pre>"); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM