首页 > 解决方案 > 无法为数组中的变量赋值

问题描述

我正在用 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 个不同的国家名称。有人可以向我解释一下,或者可能有更好的方法。谢谢 !

标签: javascriptarraysvariables

解决方案


好的,所以我稍微更改了代码。

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 谢谢。


推荐阅读