为什么console.log()和document.write()在JavaScript中为二维数组输出不同的结果?

时间:2012-11-15 05:23:49

标签: javascript

我试图理解JavaScript中二维数组的来龙去脉。在调试时,我注意到使用console.log()和document.write()输出时值的差异。

我知道我应该使用console.log(),但似乎我只能得到document.write()来输出我期待的内容。

var x = [];
  for (var i = 0; i < 5; i++) {
    x[i] = new Array(1);           
  }
    x[0][0] = "A";
    x[0][1] = "Apple";
    x[1][0] = "B";
    x[1][1] = "Banana";
    x[2][0] = "C";
    x[2][1] = "Cumquats";
    x[3][0] = "D";
    x[3][1] = "Dewberry";
    x[4][0] = "E";
    x[4][1] = "Elderberry";

document.write(x);
console.log(x);

我从 document.write(x)

中看到以下内容
A,Apple,B,Banana,C,Cumquats,D,Dewberry,E,Elderberry

我从 console.log(x)

中看到以下内容
[Array[2], Array[2], Array[2], Array[2], Array[2]]

2 个答案:

答案 0 :(得分:1)

根据我的理解,控制台根据浏览器的供应商而有所不同。登录Firefox会产生与Chrome不同的结果。 Document.write是一种Javascript方法,在所有浏览器中都有一定的实现,比如trim()或任何其他方法。

因为log()用于开发目的,所以输出数据无关紧要,只要它对开发人员有用。

答案 1 :(得分:1)

答案非常简单:Chrome最小化阵列,每个阵列都有一个包含两个项目的阵列。点击它以显示内容。