簡體   English   中英

無法將陣列推入陣列(使陣列成陣列)

[英]Not Able to Push Arrays into Array (Making Array of Arrays)

您能否看一下這段代碼,讓我知道為什么在此示例中無法創建數組數組?

 var data1 = [5555,22,102858,12,.554,88888,99999999,12,1.5]; var data2 = [5555,22,102858,12,.554,88888,99999999,12,1.5]; var data3 = [5555,22,102858,12,.554,88888,99999999,12,1.5]; var data4 = [5555,22,102858,12,.554,88888,99999999,12,1.5]; var all = []; all[0].push(data1); all[1].push(data2); all[2].push(data3); all[3].push(data4); var myJsonString = JSON.stringify(all); console.log(myJsonString); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 

由於all[X]undefined您應該執行all.push(dataX)

var data1 = [5555,22,102858,12,.554,88888,99999999,12,1.5];
var data2 = [5555,22,102858,12,.554,88888,99999999,12,1.5];
var data3 = [5555,22,102858,12,.554,88888,99999999,12,1.5];
var data4 = [5555,22,102858,12,.554,88888,99999999,12,1.5];

var all = [];
all.push(data1);
all.push(data2);
all.push(data3);
all.push(data4);

var myJsonString = JSON.stringify(all);
console.log(myJsonString);

說明:

在您編寫的代碼中, all都是一個空Array

all[X] (例如all[0] )指向數組的第一個元素,該元素不存在(因為數組為空)。 JavaScript將其解釋為undefined (沒有數組超出范圍的異常)

undefined沒有方法.push(...) ,這就是代碼失敗的原因。

您想要在all Array上調用.push(...)地方調用all.push(...)

all[0].push(data1);

all[0]檢索all的第一個元素。 由於您剛剛制作了數組,並且該數組為空,因此undefined (在其他語言中,這將是違反數組索引訪問的)。 然后,您嘗試添加到第一個元素; 如果它本身是一個數組,這將為您提供[[[5555,22,...這比您想要的多一個數組容器。

最簡單的解決方案是通過文字構造數組。

var all = [data1, data2, data3, data4];
// no "push()" necessary here.

暫無
暫無

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

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