使用变量从数组中获取数据

时间:2017-09-23 13:23:05

标签: javascript jquery arrays

我有一个包含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;

有人可以在查看数组时告诉如何使用变量。

3 个答案:

答案 0 :(得分:2)

使用点表示法,您无法执行此操作,因为点后面的内容被视为文字属性名称。

但你可以使用方括号表示法,它将属性名称作为构建字符串,这意味着你可以连接变量和表达式。

foo.bar; //looks for the property @bar
foo[bar] //looks for the property *whose name is stored* in the variable @bar

所以在你的情况下:

data[0][priceCURCrypto];

Here's more info on dot vs. square-bracket syntax。

答案 1 :(得分:1)

使用括号

var priceCUR = data[0][priceCURCrypto];

答案 2 :(得分:0)

您可以使用 [] 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']);