我有一个函数,它像"obj.key.subkey.subsubkey"
的字符串:替代EVAL多个属性查找
function(obj, key) {
return eval('obj.'+ key);
}
什么将eval
一个安全的替代品在这种情况下,或者是eval
罚款?在这种情况下,new Function
不起作用。也许split
然后循环?
我有一个函数,它像"obj.key.subkey.subsubkey"
的字符串:替代EVAL多个属性查找
function(obj, key) {
return eval('obj.'+ key);
}
什么将eval
一个安全的替代品在这种情况下,或者是eval
罚款?在这种情况下,new Function
不起作用。也许split
然后循环?
我不确定你真的需要在这里的功能。如果你有对象和键只是使用键来返回对象的属性。
obj[key]
如果你必须处理多个密钥:
function get(obj, key) {
var keys = key.split(".");
var tmp = obj;
for (var x = 0; x < keys.length; x++){
tmp = tmp[keys[x]];
}
return tmp;
}
@Felix Kilng。没有看到那个,那就是我一直在寻找的东西。毕竟,我希望不得不这样做。循环它然后... – elclanrs
我将它添加到我的最爱,因为我永远也找不到它;) –