我尝试使用omdbapi和我使用异步函数来获取数据。我使用Object.key()
将const data
转换为数组,以便可以使用map()
将数据发送到innerHTML,但它总是显示undefined
。我想使用map()
将data
转换为一个新数组,并使用movieHTML()
在html中显示它。请帮帮忙
const movieListEl = document.querySelector('.shows');
async function main (event) {
const url = `https://www.omdbapi.com/?apikey=39a36280&s=${encodeURI(event)}`;
const search = await fetch(`${url}`);
const data = await search.json();
// console.log(data.Search)
// if (data.Response === 'True') {
// console.log(data.Search)
// }
let dataKeys = Object.keys(data.Search);
movieListEl.innerHTML = dataKeys.map((movie) =>
console.log(movieHTML(movie))).join("");
}
main('squid game');
function movieHTML (details) {
return `<div class="shows__content">
<figure class="shows__poster">
<img src="${details.Poster}" alt="" class="poster">
</figure>
<div class="poster__description">
<h4 class="poster__title">${details.Title}</h4>
<p class="poster__year">${details.Year}</p>
</div>
</div>
`
}
个字符
1条答案
按热度按时间0sgqnhkj1#
为什么使用
Object.keys
?:字符串
如果你检查你的数据,你会发现
data.Search
是一个数组。因此,它的“键”是索引值(0,1,2等)。将这些整数值发送到movieHTML()
似乎效率不高。不是在数组的 indexes 上循环,而是在数组本身上循环,并将其中的每个对象发送给函数:
型