从变量数组中获取数据
问题描述:
我有一个来自API的数据。从变量数组中获取数据
以下是来自API的数据。
[
{
"id": "litecoin",
"name": "Litecoin",
"symbol": "LTC",
"rank": "6",
"price_usd": "48.5624",
"price_btc": "0.0128526",
"24h_volume_usd": "198794000.0",
"market_cap_usd": "2576800216.0",
"available_supply": "53061632.0",
"total_supply": "53061632.0",
"percent_change_1h": "-1.98",
"percent_change_24h": "6.07",
"percent_change_7d": "-0.51",
"last_updated": "1506172141",
"price_eur": "40.637987568",
"24h_volume_eur": "166354795.08",
"market_cap_eur": "2156317957.0"
}
]
我想要price_eur。 我知道我可以用
data.price_eur
做这个事情是可以欧元更改为任何其他货币。 所以,如果我想获得美元是使用
data.price_usd
但货币将是可变的。 所以我想在'price_'变量之后创建文本。
我尝试了一些东西,但没有成功。 这是我试过的。
inputCrypto = 'eur';
var priceCURCrypto = 'price_' + inputCrypto;
var priceCUR = data[0].priceCURCrypto;
有人可以告诉如何通过查看数组时使用变量。
答
您可以使用[] notation访问它的名字是在变量的属性。它将评估[]
中的表达式并将结果用作属性名称。
inputCrypto = 'eur';
var priceCURCrypto = 'price_' + inputCrypto;
var priceCUR = data[0][priceCURCrypto];
例子
const obj = { nameA: 'NameA', nameB: 'NameB' };
const name = 'name'
const propName = name + 'A';
// Value of the propName is 'nameA', get the property with name 'nameA'
console.log(obj[propName]);
// Use string concatenation
console.log(obj[name + 'B']);
答
使用括号
var priceCUR = data[0][priceCURCrypto];
答
有了点符号,你不能这样做,因为该点被认为是文字属性名后会发生什么。
但是,您可以使用方括号表示法,它将属性名称视为构建的字符串,这意味着您可以与变量和表达式连接。
foo.bar; //looks for the property @bar
foo[bar] //looks for the property *whose name is stored* in the variable @bar
所以你的情况:在点与方括号的语法
data[0][priceCURCrypto];
而不是第十万次回答同样的事情,这里的回答者应该投票结束这个重复的事情,显然是这样。 –