如何使用fetch与randomuser.me返回多个以逗号分隔的用户结果?
解决方法
你的请求已经正确获取到5个用户数据了,问题出在仅读取了数组里的第一个用户(results[0]),没有遍历所有返回的用户数据。只需要修改showRandomUserData函数,遍历results数组并拼接所有用户的姓名即可:
修改后的JavaScript代码:
window.onload = () => { randomUserGenerator(); }; const randomUserGenerator = () => { fetch("https://randomuser.me/api/?results=5") .then((res) => res.json()) .then((data) => showRandomUserData(data)); }; const showRandomUserData = (randomUser) => { // 遍历所有用户,生成全名数组后用逗号分隔 const userNames = randomUser.results.map(user => `${user.name.first} ${user.name.last}`); document.getElementById("name").innerText = userNames.join(', '); };
HTML部分可以保持不变:
<h3><u>Users:</u> <span id="name"></span></h3>
核心修改点:
- 使用
map方法遍历randomUser.results数组,把每个用户的姓名转换成"名 姓"格式的字符串 - 用
join(', ')把所有姓名字符串拼接成逗号分隔的长文本,最后赋值给DOM元素
内容的提问来源于stack exchange,提问作者Millhorn
相关产品推荐
相关产品推荐

