我正在node.js上构建一个程序,扫描一些货币的价格,我正在获取价格,但是我希望这个程序也记录货币的名称,而不仅仅是价格。正如您在下面的代码中所看到的,console.log中的“currency”变量是我在记录价格之前试图让名称显示的。
const currencies = [euro, yen];
for (let currency of currencies) {
const pair = await fetchPairData(currency, dollar);
const route = new Route([pair], dollar);
console.log(currency + route.midPrice.toSignificant(6));
}
但是货币变量似乎想返回与它相关的值,而不是货币的名称.我该怎么换呢?谢谢大家的帮助,一步一步的做好这件事!
发布于 2020-12-05 09:55:52
一旦你这样做:
const currencies = [euro, yen];
没有从currencies[0]
返回euro
或从currencies[1]
返回yen
的链接。[euro, yen]
获取euro
和yen
变量的值,并将这些值放在数组中。
为了尽量减少对所拥有内容的更改,您可以使用对象而不是数组:
for (let [currencyName, currencyValue] of Object.entries({euro, yen})) {
const pair = await fetchPairData(currencyValue, dollar);
const route = new Route([pair], dollar);
console.log(currencyName, currencyValue + route.midPrice.toSignificant(6));
}
这是如何运作的:
{euro, yen}
是一个使用简写属性表示法的对象文字;长的是{euro: euro, yen: yen}
。因此,您将得到一个属性为"euro"
和"yen"
的对象,它的值来自euro
和yen
,它从对象自己的可枚举属性创建了一个[name, value]
对数组。数组的结果是: ["euro", euroValue], ["yen", yenValue] for-of
循环遍历数组中的条目。for-of
中的析构赋值将名称和值捕获到单独的常量中。但是,理想情况下,您应该更改起点,以便开始时有一对名称(货币)和值(货币值),而不是基于变量名称创建它们。
https://stackoverflow.com/questions/65155666
复制相似问题