循环中输出的数组和无法解释的变化

时间:2016-02-10 12:08:27

标签: javascript arrays loops

所以,我在数组中有以下数组:

记录请求:

console.log(cleanArray);

输出:

[Array[2], Array[5], Array[2], Array[2], Array[5], Array[8], Array[7], Array[2], Array[3], Array[2], Array[2], Array[2], Array[2], Array[2], Array[3], Array[3], Array[2], Array[4], Array[5], Array[2], Array[6], Array[6], Array[20], Array[2], Array[13], Array[71], Array[1], Array[3], Array[3], Array[2], Array[3], Array[2], Array[2], Array[47], Array[2], Array[132], Array[1], Array[56], Array[2], Array[5], Array[7], Array[9], Array[13], Array[11], Array[1], Array[14], Array[7], Array[7], Array[13], Array[12], Array[4], Array[11], Array[11], Array[25], Array[15], Array[18], Array[10], Array[5], Array[53], Array[30], Array[2], Array[6], Array[2], Array[1], Array[2], Array[2], Array[2], Array[3], Array[2], Array[1], Array[1], Array[2], Array[2], Array[2], Array[2], Array[1], Array[3], Array[2], Array[2], Array[2], Array[2], Array[2], Array[2], Array[3], Array[1], Array[3], Array[3], Array[2], Array[1], Array[1], Array[1], Array[1], Array[1], Array[1], Array[2], Array[11], Array[40]]

正确地说,如果你要访问cleanArray [0],你会得到以下输出:

记录请求:

console.log(cleanArray[0]);

你得到了内部数组:

["Christian", "Pulisic"]

然而!当我在循环中执行此操作时:

for (i in cleanArray){
    console.log("This is the sentence we are looking at " + cleanArray[i]);
    console.log(cleanArray[0]);

阵列消失了,我得到了:

This is the sentence we are looking at Christian,Pulisic

而且,正下方的日志正确地产生了内部数组:

["Christian", "Pulisic"]

但是,当我在代码中的其他地方执行相同的循环时,我不会遇到这个问题。发生了什么事?!

1 个答案:

答案 0 :(得分:3)

您在字符串和对象之间进行连接。 Javascript知道最好不要在该对象上调用toString(或者只是将该对象强制转换为字符串)。在该数组上调用toString的结果是以逗号分隔的数组值。

您可以查看此链接以获取更多信息: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/toString