Answer
t.me/js_testОтвет:
function replacer(key, value) {
return key != '' && value === meetup ? undefined : value;
}
Объяснение:
Первым делом проверяем чтобы key не был пустой строкой, потому что в этот момент value равен самому объекту (смотрите как работает метод JSON.stringify). Далее просто проверяем равенство value и объекта meetup и если они равны то пропускаем это значение.
Код для проверки:
const manhole = {
number: 42,
};
const meetup = {
title: 'meetup',
occupiedBy: [{ name: 'Leonardo' }, { name: 'Donatello' }],
place: manhole,
};
manhole.occupiedBy = meetup;
meetup.self = meetup;
console.log(
JSON.stringify(meetup, function replacer(key, value) {
return key != '' && value === meetup ? undefined : value;
})
);
/*
{
"title":"Совещание",
"occupiedBy":[{"name":"Иванов"},{"name":"Петров"}],
"place":{"number":23}
}
*/