我被FreeCodeCamp的算法困住了。
基本上,如果我有object1{a:1,b:2,c:3}
并且有另一个object2{a:1,b:2}
。
如何检查object2是否是object1的子对象?
答案 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)
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?。