2017-09-14 183 views
0
var person = { 
     "name" : "Bronn", 
     "description" : { 
      "occupation" : "guardian knight", 
      "age" : 52 
     } 
    } 

for(var key in person){ 
    if(person[key] == /*contains json object */){ 
     //do something 
    } 
} 

我想循環這個人,並檢查它的值是否包含單個數據或其他對象。如何檢查一個對象是否包含另一個對象?

+4

這裏沒有JSON。 – Kaiido

+0

'array'沒有在任何地方定義。我們究竟應該在這方面限定「單一數據」? –

回答

1

其示出只是正常對象不JSON.And filter過濾的陣列的object valuestypeof() == object .The長度對象存在或不存在

var person = { 
 
     "name" : "Bronn", 
 
     "description" : { 
 
      "occupation" : "guardian knight", 
 
      "age" : 52 
 
     } 
 
    } 
 
console.log('its contains any object=',Object.values(person).filter(a=> typeof(a) == 'object').length > 0)

1

可以使用映射函數或任何循環,並可以在javascript中使用typeof方法進行檢查。

var person = { 
 
    "name": "Bronn", 
 
    "description": { 
 
     "occupation": "guardian knight", 
 
     "age": 52 
 
    } 
 
} 
 

 
Object.keys(person).map(item => { 
 
    if (typeof person[item] == 'object') { 
 
     // your logic here... 
 
     console.log(person[item]); 
 
    } 
 
});

0

簡單地檢查它的構造像下面

for(var key in person){ 
    if(person[key].constructor == Object){ 
    //do something 
    } 
} 
0

您可以用typeof檢查object,但你需要檢查的價值爲好,因爲null是一個對象,一個值。

var person = { foo: null, name: "Bronn", description: { occupation: "guardian knight", age: 52 } }, 
 
    keysOfObjects = Object.keys(person).filter(key => typeof person[key] == 'object'), 
 
    wantedKeys = Object.keys(person).filter(key => person[key] && typeof person[key] == 'object'); 
 

 
console.log(keysOfObjects); 
 
console.log(wantedKeys);
.as-console-wrapper { max-height: 100% !important; top: 0; }

相關問題