Вывод всего массива: выводятся console.log и console.dir "... NUM more items]"

Я пытаюсь зарегистрировать длинный массив, чтобы скопировать его в моем терминале. Однако, если я попробую и зарегистрирую массив, он выглядит так:

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

Как я могу зарегистрировать весь массив, чтобы скопировать его очень быстро?

Ответ 1

Установка maxArrayLength

Есть несколько методов, каждый из которых требует установки maxArrayLength который по умолчанию maxArrayLength 100.

  1. Предоставьте переопределение в качестве опции для console.log или console.dir

    console.log( myArry, {'maxArrayLength': null} );
    
  2. Установите util.inspect.defaultOptions.maxArrayLength = null; что повлияет на все вызовы console.log и util.format

  3. Вызов util.inspect себя с опциями.

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

Ответ 2

Что случилось с myArray.forEach(item => console.log(item))?

Ответ 3

Использование console.table

Доступный в Node v10+ и во всех современных веб-браузерах, вы можете вместо этого использовать console.table(), который выведет красивую таблицу utf8, где каждая строка представляет элемент массива.

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

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

Ответ 4

Только что обнаружил, что опция maxArrayLength хорошо работает и с console.dir:

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

Ответ 5

Если вам нужны только элементы:

for(i = 0; i < array.length; i++)
    console.log(array[i]);

Если вы хотите также скопировать скобки и запятые:

console.log("[");
var i; // inportant to be outside
for(i = 0; i < array.length - 1; i++)
    console.log(array[i] + ",");
console.log(array[i] + "]");

Ответ 6

Вот решение, которое я тестировал в Chrome и Firefox:

var a = Array(400).fill("'item'");

console.log('[' + a + ']');

Ответ 7

Ответ Михаэля Хеллейна у меня не сработал, но близкая версия сработала

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

Это было единственное решение, которое сработало для меня, так как JSON.stringify() был слишком уродлив для моих нужд, и мне не нужно было писать код, чтобы распечатать его по одному.

Ответ 8

Ужасно, но это будет работать:

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))

Желание было сделать это в родном node.