Compares two objects to determine if the first one contains equivalent property values to the second one.
Object.keys()
to get all the keys of the second object.Array.prototype.every()
, Object.prototype.hasOwnProperty()
and strict comparison to determine if all keys exist in the first object and have the same values.const matches = (obj, source) =>
Object.keys(source).every(
key => obj.hasOwnProperty(key) && obj[key] === source[key]
);
matches({ age: 25, hair: 'long', beard: true }, { hair: 'long', beard: true });
// true
matches({ hair: 'long', beard: true }, { age: 25, hair: 'long', beard: true });
// false
Snippet collection
Comparing values in JavaScript is one of the most common tasks, yet it has a lot of things you should bear in mind.
JavaScript, Object
Compares two objects to determine if the first one contains equivalent property values to the second one, based on a provided function.
JavaScript, Object
Performs a deep comparison between two values to determine if they are equivalent.
JavaScript, Object
Omits the key-value pairs corresponding to the keys of the object for which the given function returns falsy.