Почему при передаче "\n" в JSON.stringify() вертикальный отступ увеличивается с каждым уровнем вложенности?

Я хотел немного изменить отображение выводимой JSON строки, но столкнулся с тем, что при наличии вложенных обьектов, вертикальный отступ по какой-то причине увеличивается с каждым уровнем вложенности. Чем может быть вызвано такое поведение и как его пофиксить?

let user = {
  prop1: 1,
  prop2: { 
      prop1: 2,
      prop2: {
          prop1: 3
      }
  }
};
console.log(JSON.stringify(user, null, "\n  "));


Ответы (1 шт):

Автор решения: Daniil Loban

Третий параметр метода JSON.stringify отвечает за отступ слева (indentation) для каждого уровня вложенности (т.е. если Вы укажете пробел то следующий уровень вложености после него будет отображен как 2 пробела, потом 3 и т.д.)

В вашем конкретном случае получается отступ по вертикали и только он (потому что \n переводит каретку и препятсвует росту отступа вправо) Я отобразил то что происходит на иллюстрации ниже, надеюсь будет понятнее.

Решение: Пофиксить можно только убрав перевод каретки (он итак вставляется при наличии третьего аргумента в вызове метода)

введите сюда описание изображения

→ Ссылка