我正在尝试从 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/