【发布时间】:2021-02-27 07:39:43
【问题描述】:
我想在 forEach 循环内调用一个函数来显示数据,但问题是我必须在 forEach 循环内再次执行一个 for 循环才能访问其他元素,所以如果我将函数的调用放在forEach 循环,不会调用其他元素,如果我将函数放在 for 循环内(即在 foreach 循环内),则元素会显示两次。请你帮助我好吗 ? 这是我的代码:
const data = [{
"restaurantName": "Bronco",
"address": "39 Rue des Petites Écuries, 75010 Paris",
"lat": 48.8737815,
"long": 2.3501649,
"ratings": [{
"stars": 4,
"comment": "Un excellent restaurant, j'y reviendrai !Par contre il vaut mieux aimer la viande."
},
{
"stars": 5,
"comment": "Tout simplement mon restaurant préféré !"
}
]
},
{
"restaurantName": "Babalou",
"address": "4 Rue Lamarck, 75018 Paris",
"lat": 48.8865035,
"long": 2.3442197,
"ratings": [{
"stars": 5,
"comment": "Une minuscule pizzeria délicieuse cachéejuste à côté du Sacré choeur !"
},
{
"stars": 3,
"comment": "J'ai trouvé ça correct, sans plus"
}
]
}
]
data.forEach((element) => {
const name = element.restaurantName;
const address = element.address;
for (let i = 0; i < data.length; i++) {
const comment = element.ratings[i].comment;
const stars = element.ratings[i].stars;
}
init_resto(name, address, comment, stars);
})
var list_group = document.getElementById('list-group');
function init_resto(name, address, comment, stars) {
var liElt = document.createElement('li');
liElt.innerHTML =
"<li class=\"list-group-item\">" + name + "</li>" +
"<li class=\"list-group-item\">" + address + "</li>" +
"<li class=\"list-group-item\">" + comment + "</li>" +
"<li class=\"list-group-item\">" + stars + "</li>";
list_group.appendChild(liElt);
}
<ul id="list-group"></ul>
【问题讨论】:
-
你的预期输出是什么?
-
我给你做了一个minimal reproducible example - 它给出了一个错误
标签: javascript function for-loop foreach nested