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



我想检查对象属性是否对另一个对象可用,如果有则返回true。我试过这种方法,但结果是错误的。如有任何建议,我们将不胜感激。

const checked = {0: true, 1: true, 2: true, 3 true, 4: true}
const newChecked = {0: true, 1: true, 2: 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,
1: true,
2: true,
3: 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, 1: true, 2: true, 3: true, 4: true };
const newChecked = {
0: true,
1: true,
2: true,
3: true,
4: true,
5: true,
6: true,
7: true,
8: true,
9: true,
};
const has = Object.entries(checked).every(
([keyToFind, valueToFind]) =>
Object.entries(newChecked).findIndex(
([key, value]) => key === keyToFind && value === valueToFind
) !== -1
);
console.log(has);

最新更新