2017-09-14 11 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と【選択長示すオブジェクトが存在するか否か

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

あなたがマップ関数またはいずれかを使用することができループは、typeofメソッドを使用してjavascriptで確認できます。

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

は、単にそれをチェックあなたはobjectためtypeofでチェックすることができ

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

の下のようなコンストラクタですが、あなたは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; }

関連する問題