繁体   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