2013-04-30 61 views
0

我有一个从数据库返回的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, 
//  } 

回答

2

你不需要的功能通过名称来访问属性;它是JavaScript语法的基础部分。

object[text] 
+0

谢谢你的回答直截了当。 – JHixson 2013-04-30 03:04:08

1

尝试使用这样的:

function filter(object, text) { 
    return object[text]; 
} 

这允许你动态地访问属性与支架的符号,而不是静态地访问一个带有点符号。

0

只需使用数组语法,

Object["property"] 
+1

它不叫数组语法。 – Ryan 2013-04-30 03:00:11