2016-05-06 6 views
0

idパラメータ1またはperson2オブジェクトを提供するperson1オブジェクトを返すために使用するjavascriptコードidパラメータ2を指定するオブジェクト?ネストされた値から親オブジェクトを取得

{ 
     person1: 
     { 
      id: 1, 
      name: 'john' 
     }, 
     person2: 
     { 
      id: 2, 
      name: 'doe' 
     } 
    } 

答えて

1

それらを通してあなたができるだけループするforeachを使用して...私たちはここにあなたのオブジェクトを持っていたとしましょう:あなたはIDを持っていたと言うことができます...そして、あなただけのループ

var obj = { 
    person1: { 
    id: 1, 
    name: 'john' 
    }, 
    person2: { 
    id: 2, 
    name: 'doe' 
    } 
} 

と1を見つけます。

var ID = 2; 
for (var i in obj) { 
    if(obj[i].id == ID){ 
    result = obj[i]; //this is person2... 
    } 
} 

私はこれがあなたの質問です。あなたの質問は非常にはっきりしませんでした。

+0

Javascriptには「foreach」はありません。 – Barmar

+0

'obj'はオブジェクトであり、配列ではなく、' obj.length'や 'obj [i]'を使うことはできません。 – Barmar

+0

私はそれがオブジェクトになることを意味しました....私はjavascriptを行って以来、長い時間がかかりました。時にはあなたは@Barmarを台無しにします – amanuel2

3

forループを使用すると、オブジェクトのプロパティを反復処理できます。

var obj = { 
    person1: 
    { 
     id: 1, 
     name: 'john' 
    }, 
    person2: 
    { 
     id: 2, 
     name: 'doe' 
    } 
}; 
var id_to_find = 1; 
var name_found; 
for (var name in obj) { 
    if (obj[name].id == id_to_find) { 
     name_found = name; 
     break; 
    } 
} 
+0

Break ...? if文では? – amanuel2

+0

'break'は' for'ループ用です。 – Barmar

+0

その声明はあなたに与えます。エラーobjが定義されていません(Javascriptのバージョン) – amanuel2

関連する問題