转储整个数组:console.log 和 console.dir 输出“... NUM 更多项]”

Dumping whole array: console.log and console.dir output "... NUM more items]"

我正在尝试记录一个长数组,以便我可以在我的终端中快速复制它。但是,如果我尝试记录数组,它看起来像:

['item',
 'item',
  >>more items<<<
  ... 399 more items ]

如何记录整个数组以便快速复制它?

Using console.table

在节点 v10+ 中可用,and all modern web-browsers,您可以改用 console.table(),这将输出一个漂亮的 utf8 table,其中每一行代表数组的一个元素。

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

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

myArray.forEach(item => console.log(item)) 怎么了?

设置maxArrayLength

有几种方法都需要设置 maxArrayLength,否则默认为 100。

  1. 将覆盖作为选项提供给 console.dir

    console.dir(myArry, {'maxArrayLength': null});
    
  2. 设置 util.inspect.defaultOptions.maxArrayLength = null; 这将影响对 console.logutil.format

  3. 的所有调用
  4. options 给自己打电话 util.inspect

    const util = require('util')
    console.log(util.inspect(array, { maxArrayLength: null }))
    

刚刚发现选项 maxArrayLength 也适用于 console.dir

console.dir(array, {depth: null, colors: true, maxArrayLength: null});

Michael Hellein 的回答对我不起作用,但一个接近的版本对我有用:

console.dir(myArray, {'maxArrayLength': null})

这是唯一对我有用的解决方案,因为 JSON.stringify() 对于我的需求来说太丑了,我不需要编写代码来一次打印一个。