Отобразить форматирование объекта javascript через узел - PullRequest
0 голосов
/ 22 апреля 2019

Я был озадачен этим некоторое время.Давайте возьмем этот простой объект:

let animalList = {
  animals : ["dog","cat","horse"],
  colors : ["blue","red"]
};

console.log(animalList);

Это дает мне такой вывод:

{ animals: [ 'dog', 'cat', 'horse' ],
  colors: [ 'blue', 'red' ] }

Скажем, я хотел этот вывод, вместо этого (я понимаю, это чисто косметический):

{
  animals: [ "dog", "cat", "horse" ],
  colors: [ "blue", "red" ]
}

Где узел хранит свои свойства отображения?(используемый символ кавычки, интервал и новые строки для отображения объекта и т. д.)

1 Ответ

0 голосов
/ 22 апреля 2019

Вы можете использовать JSON.stringify ( mdn ) для некоторого форматирования:

let animalList = {
  animals : ["dog","cat","horse"],
  colors : ["blue","red"]
};

console.log(JSON.stringify(animalList, null, 2));

Но чтобы настроить обработку новых строк, вам нужно создать собственную функцию obj-> string, например:

let prettyPrint = (obj, indent = 0, indentStep = 2) => {
  if (Array.isArray(obj))
    return `[ ${obj.map(a => prettyPrint(a, indent + 1, indentStep)).join(', ')}]`;
  if (typeof obj === 'string')
    return `"${obj}"`;
  if (typeof obj === 'number')
    return number;
  if (typeof obj === 'undefined')
    return 'undefined';
  if (typeof obj === 'object') {
    let spaces = ' '.repeat((indent + 1) * indentStep);
    let inside = Object.entries(obj).map(([key, value]) =>
        `${spaces}${key}: ${prettyPrint(value, indent + 1, indentStep)}`);
    return `{\n${inside.join(',\n')}\n},`;
  }
};

let animalList = {
  animals: ["dog", "cat", "horse"],
  colors: ["blue", "red"]
};

console.log(prettyPrint(animalList));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...