javascript - 根据字符串数组过滤 API 数据

标签 javascript reactjs

我正在尝试从 React 中的外部 API (CoinMarketCap) 的获取中过滤掉数据。

我只想要一组特定代码的数据,但经过多次尝试,我似乎无法让它正常工作。我觉得这应该是一个简单的解决方案,但似乎无法弄清楚。

getData = () => {
      const tickers = ["btc", "xrp", "eth", "ltc", "bch", "etc", "str", "xmr", "nxt", "zec", "rep", "dash"];
      fetch(`https://api.coinmarketcap.com/v1/ticker`)
      .then(res => res.json())
      .then(data => data.filter(d => tickers.includes(d.symbol)))
      .then(results => console.log(results)
    ) 

但它正在注销一个空数组。有什么想法吗?

最佳答案

每个 then() 都需要一个 Promise 或任何 thenable 函数。问题是 Array.prototype.filter() 不是一个 promise ,也没有解决任何问题(它不是异步函数)。你应该这样写:

getData = () => {
      const tickers = ["btc", "xrp", "eth", "ltc", "bch", "etc", "str", "xmr", "nxt", "zec", "rep", "dash"];
      fetch(`https://api.coinmarketcap.com/v1/ticker`)
      .then(res => res.json())
      .then(data => console.log(data.filter(d => tickers.includes(d.symbol))))
    ) 

关于javascript - 根据字符串数组过滤 API 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48897484/

相关文章:

javascript - jQuery 第三次单击在 div 中显示图像

javascript - React/Redux - 链接操作或组合 reducer

java - 将 Cognito 身份验证与弹性负载均衡器结合使用

javascript - React Native中的 'this'关键字指的是 'this'的曾孙

javascript - 传单标记簇 : open popup on childmarker after zoom in

javascript - 达到一定滚动距离时触发事件 jQuery

javascript - gulp 构建不输出文件。我哪里做错了?

javascript - 在应用程序中收听 chrome 扩展安装

reactjs - 如何在没有互联网连接的情况下创建简单的 React 应用程序

javascript - javascript中的多行字符串有问题