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