2015-07-20 50 views
1

我已经到处找,我没有注意到,在第一这个奇怪的相互作用,但是现在的我,我在codeacademy学习JavaScript和我陷进数组和JavaScript对象,当我这样做:如何在控制台中以表格格式显示多维JavaScript数组?

var newArray = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]; 
console.log(newArray) 

它将代码记录在同一行中,而不是像练习所要求的那样记录3行和3列,但它让我通过它,我在他们的论坛上搜索,并且有用户要求同样的事情没有答案,我尝试了可能的修复方法,例如重置浏览器甚至更改浏览器。

+0

您希望控制台将其写入到三条线?我有一种感觉,那就是练习要求别的东西。 – epascarello

+0

是的,至少这是练习的例子告诉我它会做... – Darkly

回答

1

尝试console.table()

var newArray = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]; 
console.table(newArray); 

这里是所有可用以供将来参考控制台命令的好名单:https://developer.mozilla.org/en/docs/Web/API/console

这是它的样子在Firefox(看起来在其他浏览器类似)。

enter image description here

+1

这不适用于node.js控制台。 –

+0

不幸的是,这是真的,它不能在控制台上工作,我猜他们迫使我手动做,以便以后他们可以教我一些其他的东西。 (这是一个设计缺陷,因为它让我搜索1小时的答案...),我仍然会评价你对表格命令最有用。 – Darkly

-1

这很正常,甚至可能与浏览器不同,因为没有关于如何格式化console.log输出的规范。

你可以写:

var newArray = [[1, 1, 1], [1, 1, 1], [1, 1, 1]]; 
console.log(newArray[0]); 
console.log(newArray[1]); 
console.log(newArray[2]); 
console.log(newArray[3]); 

这将输出在单独的行个人 “子阵列”。

+0

哦,我明白了,它接受我的答案,因为“多维”数组是正确的,但控制台日志不是我应该这样做,而是,谢谢我不明白为什么它让我通过而没有做到练习中的意图。 – Darkly

0

尝试console.table(newArray)相反,如果你使用Chrome。

否则console.dir(newArray)可能会让事情变得更好一些。

0

您也可以使用自定义记录器:

var newArray = [[1,1,1], [1,1,1], [1,1,1]]; 

var logArrayOfArrays = function(array){ 
    var length = array.length; 
    for(var i = 0; i < length ; i++){ 
     console.log(array[i]); 
    } 
} 

logArrayOfArrays(newArray);