2016-05-06 144 views
0

您可以使用什麼JavaScript代碼返回提供id參數1或person2對象提供id參數2的person1對象?從嵌套值獲取父對象

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

回答

1

你可以通過他們循環使用的foreach ..比方說,我們在這裏度過了你的對象:

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

然後你只需循環並找到一個..所以可以說你有了ID。

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