javascript - 无法为数组中的变量赋值
问题描述
我正在用 JavaScript 创建一个简单的项目,但似乎无法弄清楚为什么这对我不起作用。我创建了一个获取 API 以获取随机国家名称的函数,然后将该国家/地区名称推入一个空数组,但我似乎无法弄清楚如何从该数组中为我的变量赋值,可能遗漏了一些东西在这里很容易。
getRandomWord();
getRandomWord();
getRandomWord();
getRandomWord();
const words = [];
let selectedWord = words[Math.floor(Math.random() * words.length)];
console.log(words);
console.log(selectedWord);
// Fetch some random words
async function getRandomWord() {
const res = await fetch('https://randomuser.me/api');
const data = await res.json();
const randomWord = data.results[0].location.country;
words.push(randomWord);
}
我需要将单词数组中的一个随机国家名称分配给 selectedWord ,但它总是抛出未定义的,尽管我在单词数组中从 0 到 3 的位置看到 4 个不同的国家名称。有人可以向我解释一下,或者可能有更好的方法。谢谢 !
解决方案
好的,所以我稍微更改了代码。
async function getRandomWord() {
try {
const res = await fetch('https://randomuser.me/api');
const data = await res.json();
const randomWord = data.results[0].location.country;
return randomWord.toUpperCase();
// words.push(randomWord.toUpperCase());
} catch (e) {
console.log(
'There has been a problem with your fetch operation: ' + e.message
);
}
}
然后只是打电话
(async () => {
selectedWord = await getRandomWord();
displayWord();
})();
不敢相信我做到了:D 谢谢。
推荐阅读
- css - materializecss 复选框未显示在 aspx 站点中
- mysql - SpringBoot 截断连接 url 中的最后两个字符
- laravel - 由于不活动,该页面已过期。请刷新并重试。拉拉维尔 5.6
- curl - 如何使用 django rest 框架 SessionAuthentication 重置密码
- python - Docker(或 Python) - 传递给容器的参数被损坏
- javascript - JavaScript:未捕获的类型错误:无法在 prac.js:13 处读取未定义的属性“长度”
- html - 切换时引导导航栏切换器不显示链接?
- python - 使用带有连接词的电子邮件时恢复密码和登录
- amazon-web-services - 无服务器中的 Cloudformation 内在函数
- php - 如何从 DOMDocument 或 file_get_content 中获取自定义 html 标签的价值