Object.keys()
to get all the keys of the second object.Array.prototype.every()
, Object.prototype.hasOwnProperty()
and the provided function to determine if all keys exist in the first object and have equivalent values.const matchesWith = (obj, source, fn) => Object.keys(source).every(key => obj.hasOwnProperty(key) && fn ? fn(obj[key], source[key], key, obj, source) : obj[key] == source[key] );
const isGreeting = val => /^h(?:i|ello)$/.test(val);
matchesWith(
{ greeting: 'hello' },
{ greeting: 'hi' },
(oV, sV) => isGreeting(oV) && isGreeting(sV)
); // true
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️