2012-01-14 67 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; 
} 
相关问题