如何在JS中动态引用对象及其对象和属性



我将属性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的解决方案,但我真的不建议走这条路。

最新更新