как сравнить объекты js
Поскольку объекты в JavaScript являются ссылочными типами данных, то при использовании как нестрогого равенства ==
, так и строгого равенства ===
, сравниваются только ссылки на объекты, а не их содержимое.
Мы можем написать свою функцию для сравнения свойств объекта, но проще и удобнее воспользоваться готовыми инструментами, например, Lodash. Эта библиотека предоставляет множество утилит для работы с объектами, в том числе для сравнения объектов.
Для сравнения объектов с помощью Lodash следует использовать функцию isEqual()
. Эта функция позволяет сравнивать два значения и возвращает true
, если они равны, и false
в противном случае. Пример:
const _ = require('lodash');
const obj1 = { a: 1, b: 2 };
const obj2 = { a: 1, b: 2 };
const obj3 = { a: 1, b: 3 };
console.log(_.isEqual(obj1, obj2)); // true
console.log(_.isEqual(obj1, obj3)); // false
Здесь мы использовали функцию isEqual()
из библиотеки Lodash для сравнения объектов obj1
и obj2
. Функция вернула true
, потому что объекты содержат одинаковые свойства с одинаковыми значениями. Затем мы сравнили объекты obj1
и obj3
, и функция вернула false
, т.к. они содержат разные значения свойства b
.