首页 > 解决方案 > 如何在不使用 eval() 的情况下将变量插入路径?

问题描述

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 对象的任何解决方案。)

标签: javascript

解决方案


您也可以使用“数组表示法”访问对象属性:

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

推荐阅读