如何通过将变量作为键传递来从对象中检索值
How to retrieve a value from an object by passing a variable as a key
我有以下对象数组
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}
]
我还有两个变量:
myExchange 和 myCurr
我正在尝试从数组中提取相关的货币值。
即如果 myExchange = 'KRAKEN' 和 myCurr = USD,那么我需要获取结果为 = 1800
我在 coffeescript 中使用了以下代码(和下划线 ._ 作为库)但它返回为 'undefined'
objBuy = _.find(position, (objBuy) ->
objBuy.exchange is buyExchange
)
objBuyCurr = _.find(objBuy, (objBuyCurr) ->
objBuy._key is buyCurr
)
最终我的目标是将对象 property/keys 作为变量动态传递。 IE。:
值 = position.myExchange.myCurr(而不是 position.KRAKEN.USD)
您可能不希望使用数组来形成数据,而是使用散列 table(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];
我有以下对象数组
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}
]
我还有两个变量: myExchange 和 myCurr
我正在尝试从数组中提取相关的货币值。 即如果 myExchange = 'KRAKEN' 和 myCurr = USD,那么我需要获取结果为 = 1800
我在 coffeescript 中使用了以下代码(和下划线 ._ 作为库)但它返回为 'undefined'
objBuy = _.find(position, (objBuy) ->
objBuy.exchange is buyExchange
)
objBuyCurr = _.find(objBuy, (objBuyCurr) ->
objBuy._key is buyCurr
)
最终我的目标是将对象 property/keys 作为变量动态传递。 IE。: 值 = position.myExchange.myCurr(而不是 position.KRAKEN.USD)
您可能不希望使用数组来形成数据,而是使用散列 table(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];