有一个网站(Scryfall(可以搜索所有打印过的魔法:收集卡,并返回特定结果(特定稀有度/力量/名称的卡等(。我喜欢这个网站,但我只想在我个人拥有的卡片中搜索。
所以Scryfall有一个搜索API,返回JSON结果。我已经用我个人收藏的数据将collection.json作为本地json文件,所以当我搜索Scryfall的API时,它会返回json,并将其与我的本地json进行比较,只在前端显示两者匹配的内容。
这就是我目前所拥有的:
async function fetchAsync (url) {
let response = await fetch(url)
let data = await response.json()
return data
}
let collection = fetchAsync('./collection')
let scryfall = fetchAsync('http://api.scryfall.com/cards/search?q=ceratops&unique=cards&as=grid&order=name')
let results = JSON.parse(scryfall).data.filter(card => { return collection.includes(card.id) } )
results.forEach(function (card) {
document.querySelector('.card').innerHTML += "<li>" + card.name + "</li>"
})
我希望它只在前端输出匹配的结果,但它并没有这样做。
您可以使用JSON.stringfy函数转换字符串中的JavaScript对象;您可以与本地json进行比较。
检查JSON.parse&JSON.stringify您将了解如何做到这一点。