将元素从一个数组复制到另一个数组时出现Javascript问题。额外的方括号,额外的尺寸?

时间:2015-09-29 21:03:37

标签: javascript arrays

开始于:

ArrayA = [    ["Element0"],  ["Element1"],  ["Element2"]    ];

ArrayB = [];

for-loop:

ArrayB[i] = ArrayA.splice(x,1);

然后

ArrayB = [    [["Element0"]],  [["Element1"]],  [["Element2"]]    ]

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:0)

Array.splice返回已删除项目的数组。在ArrayA中,每个项都是一个数组,因此Array.splice返回一个包含该数组的数组。例如, ArrayA.splice(0, 1)返回[["Element0"]]。如果您使用这样的方式填充ArrayB,那么您将得到一个数组,其中每个元素都是一个包含单个数组的数组,这就是您所拥有的。

如果您总是将Array.splice用于单个元素,并且希望返回该元素,则可以编写ArrayA.splice(0, 1)[0]来获取第一个元素。

另外,你真的希望ArrayA成为一个数组数组吗?或者你想要它是一个字符串数组?如果是,则只需ArrayA = ["Element0", "Element1", "Element2"];ArrayA.splice(0, 1)的结果为"Element0"