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