2013-04-30 65 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