JavaScript-基于发送对象属性执行函数

JavaScript - Execute Function Based on Sent Object Property

本文关键字:执行 函数 属性 对象 于发送 JavaScript-      更新时间:2023-09-26

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

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

唤醒后

obj['foo'] 

相当于(如果foo是有效标识符)

obj.foo

你可以简单地使用

var cost = myArray[0][CostPassed];

您可以使用简单的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;
}