2014-11-14 19 views
-1

我有以下對象:如何獲得在JavaScript對象這些關鍵

var input = { 
     "document": { 
      "people":[ 
       {"name":"Harry Potter","age":"18","gender":"Male"}, 
       {"name":"hermione granger","age":"18","gender":"Female"} 
      ] 
     } 
    } 

我這樣做:

_.each(result.document[people], function(item){ 
    console.log(item); 
    //What should I do here ? or I come wrong way ? 
}); 

而且在項目獲得:

{name : 'Harry Potter', age : '18':, gender:'Male'} 
{name : 'hermione grange', age : '18':, gender:'Female'} 

我想要[姓名,年齡,性別]。我該怎麼辦?

+1

遍歷'input.document.people'。 – undefined

+0

您是否在尋找與鑰匙名稱,年齡和性別相關的值?在'_each'嘗試這樣,你可以得到它'console.log([item.name,item.age,item.gender])' –

+3

'Object.keys(input.document.people [0])''? –

回答

0

是這樣的嗎?

_.each(result.document[people], function(item) { 
    _.each(item, function(item, key) { 
    console.log(key); 
}); 
}); 

_.each發送在第二key參數中的對象的情況下,回調函數。

0

你在這裏..最終答案。 (編輯返回鍵,而不是按照評論值)

_.each(result.document[people], function(item){ 
    //get keys as numerical array 
    var num_arr = []; 
    for (var key in item) { 
     num_arr.push(key); 
    } 
    console.log(num_arr); // should return ['name', 'age', 'gender'] 

}); 
+0

我想['名字','年齡','性別']不值T_T。 你有別的辦法嗎? –

0

好吧,現在我知道你實際上想要的對象的名稱,而不是價值。所以我爲你添加了另一個代碼。 對不起,我現在沒有時間來解釋,但是我寫的這段代碼可以做你需要的技巧。

這說明對象的名稱:

root_obj=input.document.people[0]; 
tmp=[]; 
for(val in root_obj) 
{ 
    tmp.push(val); 
} 
console.log(tmp); 

這說明對象的值:

root_obj=input.document.people; 

for(obj in root_obj) 
{ 
    tmp=[]; 
    for(val in root_obj[obj]) 
    { 
    tmp.push(root_obj[obj][val]); 
    } 
    console.log(tmp); 
} 
1

如果你覺得你的價值觀是動態的,使用第一功能

var input = { 
    "document": { 
     "people":[ 
      {"name":"Harry Potter","age":"18","gender":"Male"}, 
      {"name":"hermione granger","age":"18","gender":"Female"} 
     ] 
    } 
} 

var func = function (one, two) { 
    var array = input[one][two]; 
    var arr =[]; 
    for (var i=0; i<array.length; i++){ 
    arr = Object.keys(array[0]); 
    } 
return arr;  
} 
func("document", "people"); // will return ["name", "age", "gender"] 
+0

是'這是爲上述問題的工作。 :) – Naitik

1

試試這個

var s = {name: "raul", age: "22", gender: "Male"} 
    var keys = []; 
    for(var k in s) keys.push(k); 

此處按鍵陣列將返回您的密鑰["name", "age", "gender"]

相關問題