无法将阵列推入阵列(制作阵列数组)

时间:2015-09-18 18:56:44

标签: javascript

请你看一下这个片段,让我知道为什么我不能在这个例子中创建一个数组数组?

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>

1 个答案:

答案 0 :(得分:2)

all[0].push(data1);

all[0]检索all的第一个元素。由于您刚刚创建了数组并且它是空的,因此这是undefined。 (在其他语言中,它将是一个数组索引访问冲突)。然后你试图推进第一个元素;如果它是一个数组本身,这将给你[[[5555,22,...这是一个多于你想要的数组容器。

最简单的解决方案是通过文字构建数组。

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