如何在不使用eval()的情况下将变量插值到路径?

时间:2019-06-25 16:10:42

标签: javascript

const ob = {user: {name: 'Jane', extension: '1234'}};
const param = 'name';
const path = `ob.user.${param}`;
console.log(path);

因此,这将显示“ ob.user.name”。我要打印的是“简”。如果我在eval()上致电path,可以这样做,但是我被告知eval()缓慢,不安全,甚至可能致癌。

如何在不使用path的情况下将值插值到path并获得eval()所引用的值?

(有问题的代码将在React组件中进行,我认为这排除了window对象的所有解决方案。)

1 个答案:

答案 0 :(得分:0)

您也可以使用“数组符号”访问对象属性:

const ob = {user: {name: 'Jane', extension: '1234'}};
const param = 'name';
const path = ob.user[param];
console.log(path); // Outputs "Jane"