Error maximum call stack size exceeded
Доброго времени суток, есть большой объект на полторы тысячи строк в нем есть вложенные обьекты. Есть рекурсивная функция которая переберает все поля включая вложеные и меняет значения полей совпадения которых были найдены на пустую строку. Какое именно поле будет пустым, передается вторым параметорм функции первым параметром передается сам объект. Вот функция:
function clearPropertiesInObject(obj, value) { let result = getProp(obj, value); function getProp(obj, value) { for (let prop in obj) { if (typeof obj[prop] === 'object') { getProp(obj[prop], value) } else if (prop === value) obj[prop] = ''; } return obj; } return result; } let newObj = clearPropertiesInObject(obj, "email"); } Тестировал ее в html файле и браузере вместе с объектом работает корректно попробовал забросить на бэкенд (node js) в проект пишет Error maximum call stack size exceeded подскажите как обойти и в чем проблема? Почему в браузере не выводит переполнение стэка, а нода выводит ходя движки одинаковые. Тестировал html файл в хроме |
6 строку обернуть в
setTimeout(() => {...code here...}, 0) можно только про прототипам объектов пробежаться и выставить нужное значение, если все было сделано ) как надо... |
Тратить 4 мс на каждый вызов?
Тогда уж лучше queueMicrotask queueMicrotask( () => getProp(obj[prop], value)) Хотя какая то странность, что в браузере нет переполнения, а в ноде есть. Может объекты разные? |
Цитата:
есть ли в объекте циклические ссылки? |
Часовой пояс GMT +3, время: 17:19. |