我将属性options_r
传递到函数中,但我需要动态引用它的属性。。。
为了简单地说明,这里有一个函数,它接受一个参数。
options_r = {}
function blah(myData,options_r) {
output_data = myData[options_r.target]; //
alert(output_data)
}
这适用于
myData.joe = 'male';
myData.anne = 'female';
let options_r.target = 'joe';
blah(myData, options_r);
这不是
myData.dataset.joe = 'male';
myData.dataset.anne = 'female';
let options_r.target = 'dataset.joe';
blah(myData, options_r);
是的,有时需要以这种方式引用对象中的对象。
有什么想法吗?谢谢
您试图实现的不是JavaScript的原生特性。
一些常见的扩展库就是这样做的,例如lodash的_.get函数。在你的情况下,如果你使用这个,你将能够进行
_.get(myData, options_r.target);
否则,您将不得不编写一些代码来解析路径并自己进行智能对象遍历。
最后一种选择是使用基于eval
的解决方案,但我真的不建议走这条路。