如果对象的所有值都存在于另一个对象中,我想doSomething
const object1 = { letter: 'a', number: 1 };
const object2 = { letter: 'b', number: 2 };
const object3 = { letter: 'a', number: 1, address: 'not in object4' }
const object4 = { letter: 'a', number: 1, address: 'different address', section: 'abc' }
if (isPresent(object1, object4)) doSomething;
如果我在 isPresent
第一个参数中用 object2
或 object3
替换 object1
,它应该返回 false,因为object4 没有它们的值,如果 argument1 上的所有值都存在于 argument2 上(如示例),则返回 true。
最佳答案
您可以获得所有条目并检查其他对象。
const
isPresent = (a, b) => Object.entries(a).every(([k, v]) => k in b && v === b[k]),
object1 = { letter: 'a', number: 1 },
object2 = { letter: 'b', number: 2 },
object3 = { letter: 'a', number: 1, address: 'not in object4' },
object4 = { letter: 'a', number: 1, address: 'different address', section: 'abc' };
console.log(isPresent(object1, object4)); // true
console.log(isPresent(object2, object4)); // false
console.log(isPresent(object3, object4)); // false
关于javascript - 如何判断对象的所有值是否存在于另一个对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59247837/