FRONTEND_1 Telegram 3973
🔥 Быстрое сравнение объектов в JS без глубоких сравнений

Иногда не нужен deep equal, а просто надо понять: два объекта точно одинаковы по содержимому?

Вот простой, но мощный трюк на базе JSON.stringify():


const isEqual = (a: object, b: object) =>
JSON.stringify(a) === JSON.stringify(b);


📌 Подходит для:

* Простых объектов без методов и undefined;
* Сравнения кеша/props в memo;
* Быстрой проверки изменений формы.

⚠️ Не подходит:

* Для вложенных объектов с разным порядком ключей ({a:1,b:2} !== {b:2,a:1});
* Когда есть Date, Map, Set, функции, undefined, symbol.

🧠 Альтернатива:
Если важен порядок и типы — используй lodash.isEqual.

👉 Пример использования:


if (!isEqual(prevForm, currentForm)) {
saveChanges();
}


Просто. Эффективно. Для 80% кейсов — 🔥

👉 @frontend_1
👍7



tgoop.com/frontend_1/3973
Create:
Last Update:

🔥 Быстрое сравнение объектов в JS без глубоких сравнений

Иногда не нужен deep equal, а просто надо понять: два объекта точно одинаковы по содержимому?

Вот простой, но мощный трюк на базе JSON.stringify():


const isEqual = (a: object, b: object) =>
JSON.stringify(a) === JSON.stringify(b);


📌 Подходит для:

* Простых объектов без методов и undefined;
* Сравнения кеша/props в memo;
* Быстрой проверки изменений формы.

⚠️ Не подходит:

* Для вложенных объектов с разным порядком ключей ({a:1,b:2} !== {b:2,a:1});
* Когда есть Date, Map, Set, функции, undefined, symbol.

🧠 Альтернатива:
Если важен порядок и типы — используй lodash.isEqual.

👉 Пример использования:


if (!isEqual(prevForm, currentForm)) {
saveChanges();
}


Просто. Эффективно. Для 80% кейсов — 🔥

👉 @frontend_1

BY Frontend разработчик


Share with your friend now:
tgoop.com/frontend_1/3973

View MORE
Open in Telegram


Telegram News

Date: |

Users are more open to new information on workdays rather than weekends. Although some crypto traders have moved toward screaming as a coping mechanism, several mental health experts call this therapy a pseudoscience. The crypto community finds its way to engage in one or the other way and share its feelings with other fellow members. Ng Man-ho, a 27-year-old computer technician, was convicted last month of seven counts of incitement charges after he made use of the 100,000-member Chinese-language channel that he runs and manages to post "seditious messages," which had been shut down since August 2020. Concise 2How to set up a Telegram channel? (A step-by-step tutorial)
from us


Telegram Frontend разработчик
FROM American