2012-01-14 23 views
0

我有一個對象數組。這些對象有一堆成本性質的JavaScript - 根據發送對象屬性執行函數

var myArray = 
[ 
{"ID": "1"; "CostA": 200, "CostB": 3000, "CostC": 900}, 
{"ID": "1"; "CostA": 150, "CostB": 2500, "CostC": 800}, 
{"ID": "1"; "CostA": 210, "CostB": 4000, "CostC": 600} 
] 

基於一些用戶操作,我想通過這樣的功能,

function deteremineCosts(myArray, CostPassed) 

CostPassed將在對象的成本屬性之一 - CostA,CostB或CostC。

有沒有辦法像myArray[0].CostPassed那樣獲取對象的值?

我知道我還可以做以下的(我寧願沒有因爲成本的屬性列表是巨大的) -

if (CostPassed = "CostC") 
{ 
    var someCost = myArray[0].CostC; 
} 

我相信jQuery的.each就能得到鍵和值從一個對象,但我遇到問題獲取屬性名稱(不只是值)的對象數組。

回答

3

awaring是

obj['foo'] 

等同於後(如果foo是一個有效的標識符)

obj.foo 

您可以簡單地使用

var cost = myArray[0][CostPassed]; 
+0

啊當然啊,我完全忘記了你可以傳入這樣的變量。 – firedrawndagger 2012-01-14 20:04:36

1

您可以使用簡單的for循環做到這一點:

for(var name in obj){ 
    console.log(name); // this will output field name, not the value 
    console.log(obj[name]); //this will output the value; 
}