2016-03-28 29 views
0

FreeCodeCamp'teki algoritma üzerinde sıkışıp kaldım. Temel olarak, object1{a:1,b:2,c:3} varsa ve başka bir object2{a:1,b:2} varsa. Nesnenin object1 nesnesinin bir alt nesnesi olup olmadığını nasıl kontrol ederim? bunların her biri bir amacı A içinde ihtiva edilen ve var olup olmadığınıJavascript'te bir nesnenin "alt nesne" olup olmadığını nasıl kontrol edebilirim?

+0

'Object1.hasOwnProperty (Object2)'? –

+0

Maalesef benim için işe yaramıyor gibi görünüyor – tata

+0

Ob1'de ob2 veya ob2'nin tüm ob1 elemanlarının var olup olmadığını kontrol etmeniz gerekiyor mu? – aliasav

cevap

0

nesne B özellikleri üzerinde yineleme ve kontrol aynı değer.

sözde kod:

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 

bir başlangıç ​​olarak için How do I enumerate the properties of a JavaScript object? bakınız.

0

kullanılması Array.prototype.every fonksiyonu

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

İlgili konular