javascript - 如何判断对象的所有值是否存在于另一个对象中

标签 javascript object

如果对象的所有值都存在于另一个对象中,我想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 第一个参数中用 object2object3 替换 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/

相关文章:

javascript - Bootstrap - 日期选择器/禁用数组中的特定日期

javascript - 使用 javascript 聚焦字段时显示 Android 软键盘

javascript - 以增量方式显示 SQLite 数据库中的数据

javascript - 在 nuxt 中使用 babel-polyfill (而不是 polyfill.io)

javascript - 如何将对象中的字符串值转换为数字?

python - 如何将 numpy 数组的 dtype 更改为 'object' ?

javascript - 如何从 Angular 本地存储获取对象值?

javascript - 根据多个唯一值进行过滤

javascript - 使用 react-testing-library 的故事截图

javascript - 重构 JS 对象数组