javascript - 生成一个4位数组,其中包含不重复的数字

标签 javascript arrays

var globalScope = {}


function generateNum() {
    globalScope.genNum = [];
    for (var i = 0; i < 4; i++) {
        var numEl = Math.floor((Math.random() * 9)+1);
        globalScope.genNum.push(numEl);
    }
    return globalScope.genNum;
}

大家好。我刚刚开始学习 JS,我的硬件是创建一个 4 位数组,其中包含从 1 到 9 的不重复数字(对于游戏 Bulls and Cows)。但我不知道如何实现检查这个数组是否有重复的数字。请有人帮忙。提前致谢

最佳答案

或者,您可以使用包含从 09 的所有数字的源数组,每次从源中选择并删除其中一个:

function genNum(){
    var arr = [], // target array
        source = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0], // source array
        sourceLen = source.length,
        i, r;

    for (i=0; i<4; i++) {
        r = Math.floor(Math.random()*(sourceLen-i)); // pick a random index
        // remove it from the source and add it to the target
        arr.push(source.splice(r, 1)[0]);
    }

    // return it
    return arr;
}

MDN 上了解有关 .splice 方法的更多信息.

关于javascript - 生成一个4位数组,其中包含不重复的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24722489/

相关文章:

c - 在字符串中的每个字符之间添加 '-' ?

javascript - 自定义元素原型(prototype)中的重写函数会更改 this 对象

javascript 通过单击标签来检查复选框时确认

javascript - 如何使用 JavaScript 从图像中提取文本

php - 从多个时间段创建连续的时间线

arrays - 如何在 CosmosDB 中为具有嵌套/多个数组的 JSON 文档编写 SQL 查询

javascript - 设计门户容器

javascript - DataTable - 如何实现嵌套数据表?

python - 如何用紧邻屏蔽值的平均值替换 numpy 数组中的屏蔽值

java - 如何在Java中将通用列表转换为通用数组?