Как сравнить два объекта в JavaScript

Обычно при сравнении типов данных , таких как int и strings в JavaScript, вы используете операторы равенства ( == и === ). Однако сравнение объектов с == и === не будет работать.

Чтобы исправить это, один из вариантов — преобразовать оба объекта в строку, а затем использовать операторы равенства.

Использование JSON.stringify()

Сначала мы преобразуем объекты в их строковую версию, используя JSON.stringify () , а затем сравните их, используя ===:

 const obj1 = {"a": 1, "b": 2}; const obj2 = {"a": 1,  «b»: 2}; console.log (JSON.stringify (obj1) === JSON.stringify (obj2)); //верно 

Если порядок свойств отличается , указанный выше метод будет оцениваться как ложный, даже если свойства одинаковы:

 const obj1 = {"a": 1, "b": 2}; const obj2 = {"b": 2, "a": 1}; консоль  .log (JSON.stringify (obj1) === JSON.stringify (obj2)); //ложь 

Чтобы решить эту проблему, мы можем использовать вместо этого используется библиотека JavaScript, называемая lodash .

Использование lodash

lodash — это Библиотека JavaScript, которая предлагает _. IsEqual (value1, value2) , который выполняет глубокое сравнение между двумя значениями, чтобы проверить, эквивалентны ли они.

 import _ from "lodash"; const obj1 = {"a"  : 1, "b": 2}; const obj2 = {"b": 2, "a": 1}; console.log (_. isEqual (obj1, obj2)); //верно 

Оцените статью
nanomode.ru
Добавить комментарий