JavaScript · Senior · Запитання 22 з 75
Як серіалізувати об'єкт із циклічними посиланнями в JSON?
- ✓Правильна відповідь: Через
replacerуJSON.stringify, відстежуючи відвідані об'єкти уWeakSet - 2Звичайний
JSON.stringifyвпорається сам: цикли він замінює наnull - 3Серіалізувати такий об'єкт неможливо жодним способом
Пояснення
JSON.stringify кидає TypeError: Converting circular structure to JSON. У replacer можна пропускати повторно зустрінуті об'єкти або замінювати їх на посилання-маркер (як роблять бібліотеки на кшталт flatted). Для копіювання всередині JS підійде structuredClone - він підтримує цикли.