2017-03-06 77 views
0

例如,數組是:如何訪問對象的JavaScript數組中的字符串鍵?

chipsArray = [{'cheetos':'good'},{'dorritos':'better'}] 

這裏,chipsArray[0]會給我{'cheetos':'good'}。比方說,我填充此數組像下面這樣:

chipsArray.push({[chips]:quality}) 

但現在,我想訪問cheetosdorritos鍵中的每個對象的本陣,我不能。做chipsArray[0].chips給我未定義。

據我所知,當用某個值/變量填充對象的鍵時,它們應該用方括號包裹。但是,如果以後每個這樣的對象都是像上面給出的例子那樣的數組索引,我們怎麼才能從它們中提取值?我嘗試使用Object.keys(chipsArray[index]),但這隻給我的關鍵,而我試圖提取具體的關鍵特定值。

鉈;博士:如何提取對象的關鍵內部數組時,關鍵是這樣的字符串:

chipsArray = [{'cheetos':'good'},{'dorritos':'better'}] 

回答

1

你可以使用Object.keys並獲得唯一的第一個元素。

var chipsArray = [{ cheetos: 'good' }, { dorritos: 'better' }]; 
 

 
chipsArray.forEach(function (object) { 
 
    var key = Object.keys(object)[0]; 
 
    console.log(key, object[key]); 
 
});

或者創建與所述參考單個對象

var chipsArray = [{ cheetos: 'good' }, { dorritos: 'better' }], 
 
    hash = Object.create(null); 
 

 
chipsArray.forEach(function (object) { 
 
    hash[Object.keys(object)[0]] = object; 
 
}); 
 

 
console.log(hash['dorritos']['dorritos']);

+0

感謝您的建議,但我在我的問題,我試圖這樣提到。我不想只有鑰匙/鑰匙。我需要某個我需要訪問的密鑰的值。例如:我想通過關鍵''''dorritos''''來獲得值''''''''''。我無法訪問它,如果我做一個'''Object.keys''' – BobSilas

+0

@BobSilas我認爲這個答案默默地意味着,當你有關鍵的時候,很容易獲得值(只需訪問數組與您的retreived密鑰) – Kaddath

0

使用下面的函數的對象。

Object.values(chipsArray[i]) 

其中i爲數組的索引:它通過keyarray

function getItemByKey (key, array) { 
    var value; 
    array.some(function (obj) { 
     if (obj[key]) { 
      value = obj[key]; 
      return true; 
     } 
     return false; 
    }); 
    return value; 
} 

更多Array.prototype.somehere

0

我認爲最簡單的方法是訪問值返回value

輸出:

> chipsArray = [{'cheetos':'good'},{'dorritos':'better'}] 
[ { cheetos: 'good' }, { dorritos: 'better' } ] 
> Object.values(chipsArray[0]) 
[ 'good' ] 
+0

這不起作用的某種原因。 Object.keys工作得很好,但Object.values拋出錯誤。 – BobSilas

+0

它應該。我也包括輸出。 –

相關問題