转储整个数组:console.log和console.dir输出“... NUM more items]”

时间:2017-01-16 03:29:13

标签: arrays node.js v8 dump console.log

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

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

如何记录整个阵列,以便快速复制?

6 个答案:

答案 0 :(得分:41)

设置maxArrayLength

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

  1. 提供覆盖作为console.logconsole.dir

    的选项
    console.log( myArry, {'maxArrayLength': null} );
    
  2. 设置util.inspect.defaultOptions.maxArrayLength = null;,这会影响对console.logutil.format的所有来电

  3. 使用options致电util.inspect

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

答案 1 :(得分:3)

myArray.forEach(item => console.log(item))出了什么问题?

答案 2 :(得分:3)

迈克尔·海伦(Michael Hellein)的答案对我不起作用,但封闭版本却可以:

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

这是唯一适用于我的解决方案,因为JSON.stringify()太丑陋,无法满足我的需要,我不需要编写代码即可一次打印出来。

答案 3 :(得分:2)

Using console.table

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

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

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

答案 4 :(得分:2)

刚刚发现选项maxArrayLengthconsole.dir也很好:

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

答案 5 :(得分:-3)

丑陋但这可行:

function createFullArrayString(array){
  let string = '[';

  for(const item of array){
    string += `'${item}',\n`
  }

  string = string.substring(0, string.length - 2);

  string += ']';

  return string
}

console.log(createFullArrayString(array))

希望有一种方法可以在本机节点中执行此操作。