javascript - Nodejs 或 Java 中的 if 和 return

标签 javascript node.js

我有这个示例代码

var randFriend = friendList[Math.floor(Math.random() * friendList.length)];
if (randFriend == admin) {
    //Here
}
else if (randFriend != admin) {
    client.removeFriend(randFriend);
}

如果if randfriend == admin再次执行,我该怎么办var randFriend =friendList[Math.floor(Math.random() *friendList.length)]; 并再次检查 if(randFriend == admin)。换句话说,重新启动。

我认为这是通过 return 完成的,但我不知道。谢谢

最佳答案

我不会在随机条件下使用递归或循环,因为您将在估计运行时方面遇到问题,并且如果用例发生变化并且您将有更多想要忽略的元素,那么找到正确元素的概率会减少。

更好的想法是过滤数组以删除要忽略的元素,然后从该列表中选择一个随机元素。

var nonAdminList = friendList.filter(person => person != admin);

if( nonAdminList.length === 0 ) {
  throw new Error('no non admin persons available');
}

client.removeFriend(nonAdminList[Math.floor(Math.random() * nonAdminList.length)]);

关于javascript - Nodejs 或 Java 中的 if 和 return,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44725975/

相关文章:

javascript - 使用 Selenium WebDriverJs 关闭警报

javascript - Javascript If 语句中的多个条件

php - 如何忽略authorize.net支付网关中的AVS不匹配?

eclipse - 如何从 Eclipse 调试正在运行的 node.js 应用程序?

javascript - 需要在多个输入中添加谷歌自动完成框

javascript - 如何使用 node.js 按顺序列出目录的内容?

javascript - 如何在不重新加载页面的情况下动态地将表单字段值附加到变量

javascript - 停止在提交表单时添加 URL 参数

javascript - SVG蒙版破坏了SVG投影(包括 fiddle )

javascript - 在本地 xampp 服务器中发送邮件时出错