我有一个从数据库返回的javascript对象。
我想构建一个函数,如果传递父对象和字符串,则可以从父字符串返回一个与字符串同名的子函数。
以下代码显然不起作用,但提出了这个想法:
function filter (object, text) {
return object.Text
}
这样
var object = {
"prop1": 1,
"prop2":
{
"ChildProp1": 1,
"ChildProp2": 2,
}
}
var text = "prop2"
var ChildObject = filter(object, text)
//expected content of ChildObject = {
// "ChildProp1": 1,
// "ChildProp2": 2,
// }
答案 0 :(得分:2)
您不需要函数来按名称访问属性;它是JavaScript语法的基本组成部分。
object[text]
答案 1 :(得分:1)
尝试使用:
function filter(object, text) {
return object[text];
}
这允许您使用括号表示法动态访问属性,而不是使用点表示法静态访问属性。
答案 2 :(得分:0)
只需使用数组语法,
Object["property"]