如何在Javascript中检查对象是否是“子对象”?

时间:2016-03-28 18:46:06

标签: javascript algorithm oop object

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

3 个答案:

答案 0 :(得分:1)



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));




答案 1 :(得分:0)

使用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

答案 2 :(得分:0)

迭代对象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

首先查看How do I enumerate the properties of a JavaScript object?