将元素从一个数组复制到另一个数组时出现的Javascript问题.额外的方括号,额外的维度



开头:

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

ArrayB = [];

for循环后:

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

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

知道为什么会这样吗?

数组。Splice返回一个被删除项的数组。在ArrayA中,每一项都是一个数组,所以是array。Splice返回一个包含该数组的数组。例如,ArrayA.splice(0, 1)返回[["Element0"]]。如果您像这样使用look来填充ArrayB,您将最终得到一个数组,其中每个元素都是包含单个数组的数组,这就是您所拥有的。

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

另外,您真的希望ArrayA是数组的数组吗?还是希望它是字符串数组?如果是这样,那就是ArrayA = ["Element0", "Element1", "Element2"];, ArrayA.splice(0, 1)的结果就是"Element0"

最新更新