簡體   English   中英

在javascript中訪問另一個對象內的對象

[英]Accessing object inside another object in javascript

我有以下對象:

DOMAIN_ROLE:{
    type: "Domain"
    DomainName: "XYZ"
    DomainCode: 21
    Title: "People Role"
    CodedValues:{
        1: {Code: 1, Label: "Land"},
        2: {Code: 2, Label: "Forest"},
        3: {Code: 3, Label: "Public"},
        4: {Code: 4, Label: "Single"},
        5: {Code: 5, Label: "Private"}
       }
}

我想要做的是映射這個數據,其中名為“CodedValues”的對象的索引為 1 、 2 和 5 ,如下所示:

{Object.keys(DOMAIN_ROLE.CodedValues[1,2,5]).map(key =>{
          return (
          <div>...</div>
            );
}

問題是在映射時,“鍵”得到的值是“代碼”而不是數字,即 1,2,3...似乎鍵變成了鍵 = CodedValues.Code,我想在其中作為鍵 = 1 工作,鍵 = 2,鍵 = 5

試圖以最好的方式解釋。 任何建議都會有所幫助。

 let DOMAIN_ROLE = { type: "Domain", DomainName: "XYZ", DomainCode: 21, Title: "People Role", CodedValues:{ 1: {Code: 1, Label: "Land"}, 2: {Code: 2, Label: "Forest"}, 3: {Code: 3, Label: "Public"}, 4: {Code: 4, Label: "Single"}, 5: {Code: 5, Label: "Private"} } } // you can use object destructuring to get the data by key. const {1:first,2:second, 5:fifth} = DOMAIN_ROLE.CodedValues; console.log(first,second, fifth) //[first, second, fifth].map(()=>{})

DOMAIN_ROLE.CodedValues[1,2,5]實際上並不是您所期望的(使用鍵 1,2 和 5 獲取項目)。 您必須獲取所有密鑰並對其進行過濾並使用它:

Object.keys(DOMAIN_ROLE.CodedValues).filter(k => /* filter logic */).map(key => {
    // Use key here: DOMAIN_ROLE[key]
});

如果您想根據某些邏輯過濾鍵,這會很有幫助。 如果您要對鍵進行硬編碼,為什么不直接使用['1', '2', '5'].map(key => { /**/ }); 作為評論中的@str meions。

暫無
暫無

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

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