Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中打印具有固定列宽的2D数组?_Javascript_Arrays_Node.js - Fatal编程技术网

如何在javascript中打印具有固定列宽的2D数组?

如何在javascript中打印具有固定列宽的2D数组?,javascript,arrays,node.js,Javascript,Arrays,Node.js,我有一个Javascript数组: animals = [ ["cats", "dogs"], ["verrylongcat", "dog"], ["shortcat", "verrylongdog"], ["cat", "dog"] ] 我想在控制台中很好地显示它。有没有一种简单的方法可以使立柱具有固定的宽度,因此我得到如下结果: cats || dogs verrylongcat || dog shortcat || verrylo

我有一个Javascript数组:

animals = [
  ["cats", "dogs"],
  ["verrylongcat", "dog"],
  ["shortcat", "verrylongdog"],
  ["cat", "dog"]
]
我想在控制台中很好地显示它。有没有一种简单的方法可以使立柱具有固定的宽度,因此我得到如下结果:

cats            || dogs
verrylongcat    || dog
shortcat        || verrylongdog
cat             || dog
animals
只是一个例子,我的数组也可以有3列、4列或更多列


顺便说一句,我很震惊这个问题没有被问到,但我已经到处找了,我找不到它。我问的问题基本上与JavaScript/JS相同。

如果您只是在控制台中查找表,可以使用

Node.js支持:

  • v10-
  • 在v10之前-使用
演示:

const动物=[
[“猫”、“狗”],
[“verrylongcat”,“dog”],
[“shortcat”、“verrylongdog”],
[“猫”、“狗”]
];

控制台。桌子(动物);//查看浏览器的控制台
如果您只是想将其登录到NodeJS中的控制台(NodeJS本机不支持
console.table(动物)
,除非您使用的是v10.0+),请执行以下操作:

const动物=[
[“猫”、“狗”],
[“verrylongcat”,“dog”],
[“shortcat”、“verrylongdog”],
[“猫”、“狗”]
];
用于(动物中的常数动物){
log(animal.map(data=>data.padEnd(20)).join(“| |”);

}
首先,您需要定义第一列的最大宽度:要达到此目的,您需要迭代数组并保存第一个元素的最大长度(建议的解决方案使用
reduce()
来完成此操作)

然后,您可以再次迭代数组,并使用适当的填充量打印每一行(建议的解决方案使用
map()
来执行此操作,同时使用
repeat()
方法以所需的次数重现空格字符

const动物=[
[“猫”、“狗”],
[“verrylongcat”,“dog”],
[“shortcat”、“verrylongdog”],
[“猫”、“狗”]
];
const maxLength=动物。reduce((currMax,el)=>el[0]。length>currMax?el[0]。length:currMax,0)+5;

animals.map(el=>console.log(el[0]+“”.repeat(maxLength-el[0].length)+“| |”+el[1]))
用于每个数组的循环。到目前为止您尝试了什么?对不起,我应该提到我希望在控制台中调试它,但这仍然是一个很好的答案。非常好!我不敢相信我使用JavaScript有多久了,我不知道
console.table()
Boo!
console.table
在NodeJS中不起作用(至少在v8中是这样)。你也有办法吗?