如何检查一个对象是否是“;子对象“;在Javascript中

How to check if an object is a "sub-object" in Javascript?

本文关键字:对象 Javascript 是否是 何检查 检查 一个对象      更新时间:2023-09-26

我在FreeCodeCamp上被算法卡住了。基本上,如果我有一个object1{a:1,b:2,c:3}和另一个object2{a:1,b:2}。如何检查object2是否是object1的子对象?

var object1 = {a:1,b:2,c:3};
var object2 = {a:1,b:2};
function isSubObject(object1, object2) {
 for (var key in object2) {
   // stop if the key exists in the subobject but not in the main object
 if (object2.hasOwnProperty(key) && !object1.hasOwnProperty(key)) {
return false;
}
}
 return true;
}
document.write('is subobject? ' + isSubObject(object1, object2));

遍历对象B的属性,并检查每个属性是否包含在对象A中并且具有相同的值。

伪代码:

isSubset(A, B):
  for each property name as pName of B:
    if A contains property with name pName:
      if B[pName] equals A[pName]:
        continue
    return false
  return true

请参阅如何枚举JavaScript对象的属性?作为开始。

使用Array.prototype.every函数

var o1 = { a: 1, b: 2, c: 3 }
var o2 = { a: 1, b: 2 }
var r = Object.keys(o2).every(e => o1[e] == o2[e])
document.write(r); // sub-object