繁体   English   中英

将嵌套 object 的属性键传递给 function 以返回该属性值

[英]passing property key for nested object to a function to return that property value

我有一个像这样的嵌套 object

const sections = {
   text : {id : 1 , text: 'something' },
   link : {id : 2 , text: 'something' , 'href' : 'http://example.com' },
   social : {
      telegram : {id : 3 , text : 'my telegram' , 'address' : '@mytelegram'} , 
      twitter  : {id : 4 , text : 'my twitter' , 'address' : '@mytwitter'} , 
   }
}

我想要一个 function 通过传递属性密钥给我每个部分

function getSection(key ){

   console.log(sections[key]);
}

这适用于textlink ,但如果我想要social.telegram这将不起作用,有没有办法在没有某种循环抛出部分的情况下解决这个问题?

您需要分离键并获取外部和内部对象,直到想要的结果。

 function getSection(key) { return key.split('.').reduce((o, k) => o?.[k], sections); } const sections = { text: { id: 1, text: 'something' }, link: { id: 2, text: 'something', href: 'http://example.com' }, social: { telegram: { id: 3, text: 'my telegram', address: '@mytelegram' }, twitter: { id: 4, text: 'my twitter', address: '@mytwitter' } } }; console.log(getSection('social.telegram'));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM