将 fetch api 结果传递给函数并使用函数中处理过的数据

Posted

技术标签:

【中文标题】将 fetch api 结果传递给函数并使用函数中处理过的数据【英文标题】:Pass fetch api results to function and use the processed data from the function 【发布时间】:2021-10-26 20:22:11 【问题描述】:

我正在从这个 api 获取数字

let fetchRes = fetch("https://api.lunarcrush.com/v2?data=assets&key=n8dyddsipg5611qg6bst9&symbol=AVAX")
  .then((res) => res.json())
  .then((result) => 
    console.log(result);
    document.getElementById('result').innerhtml = result.data[0].market_cap;
  )
  .catch(error => 
    console.log(error);
  )

我希望获取的数字(例如 7692083188)以 7.69B 的形式显示。 我知道此代码用于转换,但是如何连接这两个代码以使我的数据显示为 7.69B?

function convertToInternationalCurrencySystem (labelValue) 

    // Nine Zeroes for Billions
    return Math.abs(Number(labelValue)) >= 1.0e+9

    ? (Math.abs(Number(labelValue)) / 1.0e+9).toFixed(2) + "B"
    // Six Zeroes for Millions 
    : Math.abs(Number(labelValue)) >= 1.0e+6

    ? (Math.abs(Number(labelValue)) / 1.0e+6).toFixed(2) + "M"
    // Three Zeroes for Thousands
    : Math.abs(Number(labelValue)) >= 1.0e+3

    ? (Math.abs(Number(labelValue)) / 1.0e+3).toFixed(2) + "K"

    : Math.abs(Number(labelValue));



( convertToInternationalCurrencySystem (7692083188) );
   

【问题讨论】:

【参考方案1】:

您只需通过更改此行将#result innerHTML 设置为convertToInternationalCurrencySystem(result.data[0].market_cap)

document.getElementById('result').innerHTML = result.data[0].market_cap;

到这里:

document.getElementById('result').innerHTML = convertToInternationalCurrencySystem(result.data[0].market_cap);

检查并运行以下代码片段以获取上述实际示例:

function convertToInternationalCurrencySystem(labelValue) 

    // Nine Zeroes for Billions
    return Math.abs(Number(labelValue)) >= 1.0e+9

    ? (Math.abs(Number(labelValue)) / 1.0e+9).toFixed(2) + "B"
    // Six Zeroes for Millions 
    : Math.abs(Number(labelValue)) >= 1.0e+6

    ? (Math.abs(Number(labelValue)) / 1.0e+6).toFixed(2) + "M"
    // Three Zeroes for Thousands
    : Math.abs(Number(labelValue)) >= 1.0e+3

    ? (Math.abs(Number(labelValue)) / 1.0e+3).toFixed(2) + "K"

    : Math.abs(Number(labelValue));



let fetchRes = fetch("https://api.lunarcrush.com/v2?data=assets&key=n8dyddsipg5611qg6bst9&symbol=AVAX")
  .then((res) => res.json())
  .then((result) => 
    document.getElementById('result').innerHTML = convertToInternationalCurrencySystem(result.data[0].market_cap);
  )
  .catch(error => 
    console.log(error);
  )
<h1 id="result"></h1>

【讨论】:

以上是关于将 fetch api 结果传递给函数并使用函数中处理过的数据的主要内容,如果未能解决你的问题,请参考以下文章

如何向 javascript 的 fetch() 函数发送附加数据

将HTML表单变量传递给Django中的python函数

如何获取 API 并使用在另一个函数中获得的值?

尝试将 JSON 传递给 Vue 时获取 .map() 不是函数

如何在javascript fetch中存储访问令牌并传递给下一个api调用

使用mysql_fetch_row()函数逐行获取结果集中的每条记录