开始于:
ArrayA = [ ["Element0"], ["Element1"], ["Element2"] ];
和
ArrayB = [];
for-loop:
ArrayB[i] = ArrayA.splice(x,1);
然后
ArrayB = [ [["Element0"]], [["Element1"]], [["Element2"]] ]
为什么会发生这种情况?
答案 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"
。