在React/JavaScript中如何动态访问带数字后缀的对象属性?
解决方法
你可以利用JavaScript的方括号属性访问语法搭配模板字符串实现动态属性名拼接,可选链操作符?.也支持方括号写法,你代码里的第5行修改为如下内容即可:
let result = data?.first?.second?.[`FOO_${theIndex}`]?.name;
补充说明
你当前的代码还存在语法问题:直接调用了resolve()但没有包裹在Promise实例中,如果你需要这个函数返回Promise供外部调用,推荐更简洁的async/await写法改造完整函数:
import power from 'customClass'; const getOneOfFoo = async (theIndex) => { try { const data = await power(); const result = data?.first?.second?.[`FOO_${theIndex}`]?.name; return { result }; } catch (err) { console.log(err); throw err; } };
如果需要保留原有的Promise链式写法,也可以调整为:
import power from 'customClass'; const getOneOfFoo = (theIndex) => { return new Promise((resolve, reject) => { power() .then(data => { const result = data?.first?.second?.[`FOO_${theIndex}`]?.name; resolve({ result }); }) .catch(err => { console.log(err); reject(err); }); }); };
内容的提问来源于stack exchange,提问作者jayko03
相关产品推荐
相关产品推荐

