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, время: 13:12. |