Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Array of objects to text based table node.js

So I am querying a sql database and getting a result like

[
  { id: '626916199783071750', birthdays: '10/3' },
  { id: '797279656595947531', birthdays: '01/02' },
  { id: '548976894576849555', birthdays: '3/24' }
]

But it could have more columns or rows so like it could be something like this

[
  { id: '626916199783071750', username: 'whatever', idk: true },
  { id: '797279656595947531', username: 'thing', idk: false},
  { id: '7972656595947531', username: 'idk', idk: true },
  { id: '874596745986988596', username: 'cooldude', idk: false }
]

I want to make it into a table I send to the console, something like

+--------------------+----------+
| ID                 | Birthday |
+--------------------+----------+
| 626916199783071750 | 10/3     |
+--------------------+----------+
| 797279656595947531 | 01/02    |
+--------------------+----------+
| 548976894576849555 | 3/24     |
+--------------------+----------+

Where it adds the formatting and the correct amount of rows/columns. I would use a npm package but I cannot seem to find one that takes an array of objects and outputs a table.

like image 641
Colin Frankel Avatar asked Oct 19 '25 16:10

Colin Frankel


1 Answers

There's a very handy built-in way of doing this (works on the browser as well) using console.table (Node.js documentation).

console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }]);

// ┌─────────┬─────┬─────┐
// │ (index) │  a  │  b  │
// ├─────────┼─────┼─────┤
// │    0    │  1  │ 'Y' │
// │    1    │ 'Z' │  2  │
// └─────────┴─────┴─────┘

You can even restrict which properties get printed out:

console.table([{ a: 1, b: 'Y' }, { a: 'Z', b: 2 }], ['a']);

// ┌─────────┬─────┐
// │ (index) │  a  │
// ├─────────┼─────┤
// │    0    │  1  │
// │    1    │ 'Z' │
// └─────────┴─────┘
like image 149
emeraldsanto Avatar answered Oct 21 '25 06:10

emeraldsanto



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!