我遇到了一些奇怪的行为,我找不到将一个字符串数组的内容推送到另一个字符串时的根本原因。
我有一个数组,我首先清空以便为新数组的值腾出空间,然后迭代新数组,将其内容推送到第一个清空数组。以下是代码的外观:
oldArray.length = 0;
console.log(newArray);
for (let item in newArray) {
console.log(item);
this.oldArray.push(item);
}
第一张照片的输出是:
["a string", "another string", "a third string"]
for循环中每个打印的输出是:
0, 1, 2
这是我丢失的地方,我出于某种原因获取项目的索引而不是字符串本身。它可能与我清空旧阵列的方式有关吗?请注意,为此目的,重要的是我不要弄乱oldArray引用,我宁愿保持原样。
答案 0 :(得分:4)
使用for( .. in ..)
时,迭代数组的索引,而不是值本身。要获得该值,您可以这样做:
console.log(newArray[item]);
最好只使用for(.. of ..)
循环。
for (const item of newArray) {
除此之外:在这种情况下使用const
代替let
。