[英]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.