JavaScript - 基于已发送对象属性的执行功能

时间:2012-01-14 19:57:08

标签: javascript jquery

我有一个对象数组。这些对象具有一堆成本属性

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将能够从一个对象获取一个键和值,但我遇到的问题是从一个对象数组中获取属性名称(而不仅仅是值)。

2 个答案:

答案 0 :(得分:3)

看了之后

obj['foo'] 

等同于(如果foo是有效标识符)

obj.foo

您只需使用

即可
var cost = myArray[0][CostPassed];

答案 1 :(得分: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;
}