javascript - 从数组中生成一个随机索引但排除一个。 javascript

标签 javascript

我需要从数组中生成一个随机数,但排除一个索引并返回随机数的索引。
我试过这个:

function randNum(arr,excludeNum){
    var randNumber = Math.floor(Math.random()*arr.length);
    if(arr[randNumber]==excludeNum){
        randNum(arr,excludeNum);
    }else{
        return randNumber;
    }
}
alert(randNum([7, 10, 11],7));

但有时它会返回我希望它返回的数字,有时它会返回未定义的。
有什么问题?

最佳答案

这是因为当生成的随机数是您要排除的随机数时,您的函数不会返回任何内容。将 return 添加到 if 子句中的 randNum 函数调用。

function randNum(arr,excludeNum){
    var randNumber = Math.floor(Math.random()*arr.length);
    if(arr[randNumber]==excludeNum){
        return randNum(arr,excludeNum);
    }else{
        return randNumber;
    }
}
alert(randNum([7, 10, 11],7));

关于javascript - 从数组中生成一个随机索引但排除一个。 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19075461/

相关文章:

javascript - Instafeed js 在每 4 个图像周围添加包装

javascript - 如果用户登录不起作用,则运行脚本?

javascript - 如何在 wdCalendar jquery 插件中显示月份名称而不是日期范围?

javascript - 从标签选择选项打印值

javascript - 如何从 1 而不是 0 开始 DragDealer slider 值

javascript - 在 JavaScript 中使用 Date.parse 时,有效日期由什么组成

javascript - jquery-1.6.4.min.js 自动重定向到google主页

javascript - 在主干中使用模板+ jquery ui

javascript - Typescript:推送在自定义类型数组上不可用

Swift 或 iOS 中等效的 Javascript ArrayBuffer