2016-03-28 16 views
0

私はFreeCodeCampのアルゴリズムに固執しています。 基本的には、object1{a:1,b:2,c:3}があり、別のobject2{a:1,b:2}があるとします。 object2がobject1のサブオブジェクトであるかどうかを確認するにはどうすればよいですか?オブジェクトがJavascriptの「サブオブジェクト」であるかどうかをチェックする方法は?

+0

'Object1.hasOwnProperty(Object2)'? –

+0

残念ながら、私にとってはうまくいかないようです – tata

+0

ob1の正確なob2が存在するかどうか、またはob2のすべての要素がob1に存在するかどうかを確認する必要がありますか? – aliasav

答えて

0

反復を使用し、それらの各々は、オブジェクト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?を参照してください。

0

Array.prototype.every関数オブジェクトBの特性上

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

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

関連する問題