微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何检查父对象是否包含子对象属性?有没有办法不将对象转换为数组?

如何解决如何检查父对象是否包含子对象属性?有没有办法不将对象转换为数组?

我想检查对象属性是否可用于另一个返回 true 的对象。我试过这种方式,但它给出了错误。任何建议将不胜感激。

const checked = {0: true,1: true,2: true,3 true,4: true}
const newChecked = {0: true,3: true,4: true,5: true,6: true,7: true,8: true,9: true}

Object.entries(checked).every(e => Object.entries(newChecked).includes(e))

解决方法

如果你只想检查属性,可以使用Object.keys来做到这一点

const checked = { 0: true,1: true,2: true,3: true,4: true };
const newChecked = {
  0: true,4: true,5: true,6: true,7: true,8: true,9: true,};

const has = Object.keys(checked).every((key) =>
  Object.keys(newChecked).includes(key)
);

console.log(has);

对于键值检查,可以结合使用Object.entriesArray.prototype.findIndex

const checked = { 0: true,};

const has = Object.entries(checked).every(
  ([keyToFind,valueToFind]) =>
    Object.entries(newChecked).findIndex(
      ([key,value]) => key === keyToFind && value === valueToFind
    ) !== -1
);

console.log(has);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。