/**
* @param {object} data
* @see https://stackoverflow.com/questions/66614444/multiline-console-tablea-aaa-naaa-b-bbb-nbbb-for-node
*/
export function consoleTableNewline(data) {
var tmp = [];
for (var i in data) {
var val = data[i];
var parts = val.split('\n');
var maxLen = parts.reduce((acc, cur) => Math.max(cur.length, acc), 0);
parts = parts.map(x=>x.padEnd(maxLen));
for (var j=0; j<parts.length; j++) {
var part = parts[j];
var key = i;
var obj = {};
if (j == 0) {
obj.key = key;
}
obj.val = part;
tmp.push(obj);
}
}
console.table(tmp);
}
let a = {firstName:"Jane", lastName:"Smith"};
let b = {firstName:"John", lastName:"Smith"};
let c = {firstName:"Emily", lastName:"Smith"};
console.table([a, b, c]);
1.属性为对象的对象
var family = {};
family.a = {firstName:"Jane", lastName:"Smith"};
family.b = {firstName:"John", lastName:"Smith"};
family.c = {firstName:"Emily", lastName:"Smith"};
console.table(family);
4条答案
按热度按时间kd3sttzy1#
溶液#1
试试这个,但不确定它是否是一个好的解决方案:
输出:
溶液#2
我们的想法是不要弄乱默认索引并创建自己的列
label
。输出:
polkgigr2#
感谢Dheemanth Bhat的惊人想法,该解决方案建立在此基础上:
它负责创建一个漂亮的输出(所有行的长度都完全相同,否则它看起来会高度失真)。
2sbarzqh3#
根据其他的答案,我最终使用了这个。感谢之前的工作!
应该适用于具有任意键/值对的任何对象列表。
可以传递可选的maxColWidth
consoleTableWithWrapping(change, 90) // 90 chars max
wnavrhmk4#
你可以试试这样。
1.对象数组。
1.属性为对象的对象