В настоящее время я создаю небольшое приложение Vanilla JS (без каких-либо зависимостей, таких как lodash / jquery), и мне нужно было сравнить два объекта, чтобы проверить равенство ключей и значений.Мне было просто интересно, как оптимизировать эту проблему.
Ключи обоих объектов расположены в том же порядке, что и они получены из одного и того же метода.Согласно этому ответу , самый быстрый и эффективный способ сделать это - использовать JSON.stringify(object1) === JSON.stringify(object2)
.
Однако в моем приложении, если два объекта не равны, я перебираю два из них и выполняю некоторые операции.Проблема в том, что эти операции довольно тяжелые и иногда выполняются.Мне нужно оптимизировать мое решение.
Поэтому мне было интересно, если JSON.stringify
также выполняет какой-то цикл for
внутри.В моем приложении более вероятно, что два объекта будут неравными.Поэтому, если JSON.stringify
также запускает какой-то цикл for
, я мог бы просто снять проверку и сразу запустить нужные мне операции (, что приведет к разнице в программе, только если два объекта неравны ) экономит время и делает его более оптимизированным.Если я этого не сделаю, то я буду технически запускать два цикла for
для одной и той же цели, когда два объекта неравны, и запускать один цикл for
в любом случае, когда два объекта равны.Если JSON.stringify
является внутренним циклом for
, то я могу использовать только один цикл for
, независимо от того, равны ли объекты.Имею ли я здесь смысл?Пожалуйста, дайте мне знать, если вы чего-то не понимаете.Является ли эта проверка бесполезной, и мне следует удалить ее, чтобы оптимизировать мой код?