我试图处理一个简单的案例,我可以得到一个对象,或一个字典.所以我要么得到一个像这样的对象:
obj.fields.nick
Run Code Online (Sandbox Code Playgroud)
或者它将成为一本字典
obj['nick']
Run Code Online (Sandbox Code Playgroud)
我想知道是否有更简单的方法来执行以下操作:
value = (eval("obj.fields." + field[1]) if obj?.fields ) ? eval("obj['#{field[1]}']")
Run Code Online (Sandbox Code Playgroud)
我希望做的事情如下:
value = (obj?.fields?."#{field[1]}" ) ? eval("obj['#{field[1]}']")
Run Code Online (Sandbox Code Playgroud)
但如果有效,我不会写这篇文章......
我基本上是在寻找一种方法来执行字符串作为if的一部分
value = obj.fields?[field] ? obj[field]
# or
value = (obj.fields ? obj)[field]
Run Code Online (Sandbox Code Playgroud)
这是一样的
if obj.fields?
obj.fields[field]
else
obj[field]
Run Code Online (Sandbox Code Playgroud)
绝对没有必要eval.