我有以下对象数组
position = [
{exchange: 'KRAKEN', USD: 1800, EUR: 800, GBP: 800, BTC: 800},
{exchange: 'BTCE', USD: 800, EUR: 800, GBP: 800, BTC: 800},
{exchange: 'BITSTAMP', USD: 600, EUR: 800, GBP: 800, BTC: 800},
{exchange: 'MYWALLET', USD: 1300, EUR: 800, GBP: 800, BTC: 800}
]
我还有2个变量: myExchange和myCurr
我试图从数组中提取相关的货币值。 即如果myExchange ='克拉肯'和myCurr = USD,然后我需要获取结果为= 1800
我在coffeescript中使用以下代码(并以下划线._作为库),但它返回为' undefined'
objBuy = _.find(position, (objBuy) ->
objBuy.exchange is buyExchange
)
objBuyCurr = _.find(objBuy, (objBuyCurr) ->
objBuy._key is buyCurr
)
最终我的目标是动态地将对象属性/键作为变量传递。即: value = position.myExchange.myCurr(和NOT position.KRAKEN.USD)
答案 0 :(得分:1)
您可能希望不使用数组来形成数据,而是使用哈希表(JavaScript术语中的对象)将exchange
值用作键:
position = {
'KRAKEN': { USD: 1800, EUR: 800, GBP: 800, BTC: 800},
'BTCE': { USD: 800, EUR: 800, GBP: 800, BTC: 800},
'BITSTAMP': { USD: 600, EUR: 800, GBP: 800, BTC: 800},
'MYWALLET': { USD: 1300, EUR: 800, GBP: 800, BTC: 800}
};
然后使用以下内容提取必填字段:
position['KRAKEN'].USD
或
position.KRAKEN.USD
在变量中有字段名称,例如:
var myExchange = "KRAKEN";
var myCurr = "USD";
然后记住,您可以访问对象的任何字段,就好像它是数组的索引一样:
position[myExchange][myCurr];