javascript - 对于具有两个条目的数组,循环将运行 20 次

标签 javascript arrays node.js

如何对只有两个条目的数组运行 20 次循环?

我有以下代码

const genders = ['male', 'female'];

const randChoice = arr => {
  return arr[Math.floor(Math.random() * arr.length)];
};

const loop = () =>
  for (let i = ''; i <= 20; i++) {
    const data = randChoice(genders);
    if(data === 'male') {
  const name = randChoice(maleNames);
  people.push(new Data(data, name, lastName))
} else {
  const name = randChoice(femaleNames);
  people.push(new Data(data, name, lastName))
}
console.log('people', people)
return people;

我尝试过一些不同的事情,但从未让它工作并循环 20 次。

感谢您的所有回答。

但是让这个变得更复杂 在这种情况下。这行不通

最佳答案

错误出现在第 8 行,当你写 for (let i = ''; i <= 20; i++) 时,您需要首先将变量i设置为0,如下所示:for (let i = 0; i <= 20; i++) .

循环的整个代码将是:

for (let i = 0; i < 20; i++) {
    const data = randChoice(genders);
    // here goes if else statement for gender
}

@Hasan Balcı 也指出了另一个错误,那就是在您的代码中,循环运行了 21 次而不是 20 次。为什么?因为变量i从0开始,循环运行直到达到20,包括它的值为20时!

要更正此问题,请不要写 for (let i = 0; i <= 20; i++) ,它必须是 for (let i = 0; i < 20; i++) ,改变i <= 20i < 20 !

希望这有帮助!

关于javascript - 对于具有两个条目的数组,循环将运行 20 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59106762/

相关文章:

javascript - 向元素添加函数时保留 "i"值

javascript - 单击按钮后,获取所选选项的值

python - 使用 Numpy 数组而不是列表时排序算法中的递归错误

javascript - 访问对象内数组的元素

javascript - 如何在从 Redux 商店收到错误消息 Prop 后仅显示一次 Toast

javascript - 过渡期不当行为

c# - 如何比较数组中的值

javascript - NodeJS Express - 想要在单个路由上运行处理程序两次

node.js - SockJs - 'info' 路径未找到

node.js - NativeModule 是如何工作的?它们是否被缓存?