簡體   English   中英

如何在 javascript 中獲取對象數組(鍵值對)的值?

[英]How to get a value of array of objects (pair key-value) in javascript?

好時光,我有一個這樣的對象數組:

var sections = [ {key: 0, label: 'Nothing'}, {key: 11, label: 'Alex Right'},{key: 12, label: 'Dolores Black'},{key: 21, label: 'Bobby Smith'},{key: 26, label: 'Andrew Small'} ];

因此,例如,我想獲得用於 key=12 的 label(它必須是 Dolores Black)。 如果我使用類似的東西:

alert(sections[11]['label']);

這將是錯誤的,因為它會找到數組的第 12 個元素,而不是 key=12 的元素。 那么我的情況的正確表達是什么? 謝謝

使用Array#find

 let sections = [ {key: 0, label: 'Nothing'}, {key: 11, label: 'Alex Right'},{key: 12, label: 'Dolores Black'},{key: 21, label: 'Bobby Smith'},{key: 26, label: 'Andrew Small'} ]; let res = sections.find(({key}) => key === 12)?.label; console.log(res);

in the array, use sections[n - 1]['label'] ;如果您知道該元素是數組中的元素,請使用sections[n - 1]['label'] 例如,要獲得Dolores Black (第三個元素),您可以:

sections[2]['label']; // 3 - 1 = 2

如果事先不知道元素的position,就得給JavaScript一些條件,這樣它才能找到; .key === 12 :在您的情況下,條件是 .key === 12

sections.find((item) => item.key === 12)['label'];

請注意,在這兩種情況下,我們都假設元素實際存在於數組中(如果不存在,則會出現錯誤)。

find()方法將返回提供的數組中滿足提供的測試 function 的第一個元素的值

 var sections = [ {key: 0, label: 'Nothing'}, {key: 11, label: 'Alex Right'},{key: 12, label: 'Dolores Black'},{key: 21, label: 'Bobby Smith'},{key: 26, label: 'Andrew Small'} ]; var res = sections.find(x => x.key === 12); console.log(res.label);

我會將其包裝在 function 中。 在 function 內部,我使用 js function find()。 如果您有更多具有相同 ID 的項目,那么我會使用過濾器而不是查找。

 const sections = [ {key: 0, label: 'Nothing'}, {key: 11, label: 'Alex Right'},{key: 12, label: 'Dolores Black'},{key: 21, label: 'Bobby Smith'},{key: 26, label: 'Andrew Small'} ]; const id = 11; function getLabel(id) { return sections.find(e => e.key === id)['label']; } console.log(getLabel(id))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM