我正在做一个使用The Movie Db API的项目,我对显示以下对象有些困惑:
(3) [{…}, {…}, {…}]
0: {id: 12, name: "Adventure"}
1: {id: 28, name: "Action"}
2: {id: 878, name: "Science Fiction"}
length: 3
__proto__: Array(0)
基本上,我试图弄清楚如何在一个元素中显示这三种类型。像这样做forEach循环:
const genreArr = data.genres;
console.log(genreArr)
genreArr.forEach(function(item){
genre.textContent = item.name;
})
仅显示一种流派名称,而不是全部。那么,我该怎么做才能将所有这些显示在一个段落中?
该行将genre.textContent = item.name;
覆盖仅保留最后一个值的textContent
每次迭代forEach
。
你需要追加到textContent
使用+=
。
const genreArr = [
{id: 12, name: "Adventure"},
{id: 28, name: "Action"},
{id: 878, name: "Science Fiction"}
];
const genre = document.getElementById('genre');
genreArr.forEach(function(item){
genre.textContent += item.name + ' | ';
})
<div id="genre">
</div>
使用map()
和的另一种更有效的方法join()
:
const genreArr = [
{id: 12, name: "Adventure"},
{id: 28, name: "Action"},
{id: 878, name: "Science Fiction"}
];
const genre = document.getElementById('genre');
/* Create an array containing only the 'name' values */
var genreNames = genreArr.map(function(item) {
return item['name'];
});
/* Assign the names to the div in one go, with a seperator */
genre.textContent = genreNames.join(' | ');
<div id="genre"></div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句