【发布时间】:2014-01-18 01:19:41
【问题描述】:
var myObj = {
bar_foo : "test",
bar : {
foo : "hi there";
},
foo : {
bar : {
foo: "and here we go!"
}
}
}
如何获得:
var arr = [["bar", "foo"], ["foo", "bar", "foo"]];
返回这个:
myObj["bar"]["foo"];
myObj["foo"]["bar"]["foo"];
arr 可以是任意长度,以便遍历对象。
所以我们知道我们可以像这样动态调用对象的值:
var 通常 = myObj["bar_foo"];
normally 等于 "test"
但这种技术假设我们知道遍历的深度。
我要做的是通过提供数组来检索对象值
["bar", "foo"]
本质上与以下内容相同:
myObj["bar"]["foo"];
我这样做的原因是因为我正在根据我想要的 arr 值创建一个新对象。
所以最终结果是:
arr_new = myObj.someMethod(arr);
arr_new 在哪里:
arr_new : ["hi there", "and here we go!"];
我希望能澄清一下。
【问题讨论】:
-
你试过了吗?
-
根本不是一个设置 - 我实际上是一个好人。当你展示你到目前为止所做的事情而不是“我该怎么做?”时,它只会有助于得到回应。值得发布您到目前为止所拥有的内容,我相信人们会帮助改进。
-
您能否澄清一下您期望的结果是什么?由于您要列出语句,您是否想稍后生成代码字符串到
eval()?还是那些意味着收集通过迭代每个键列表找到的值? -
...如果您不向我们展示您的尝试,我们怎么知道我们是否比您更聪明?
-
输出的语法无效,不确定是数组还是对象数组
标签: javascript object dynamic return