[英]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.