gpt4 book ai didi

javascript - 生成一个无重复数字的随机 4 位数字

转载 作者:搜寻专家 更新时间:2023-11-01 05:22:02 27 4
gpt4 key购买 nike

我有这个函数来创建一个随机的 4 位数字:

    generateCode = function(){
var fullNumber = [];
var digit1 = Math.floor(Math.random() * 9) + 1;
var digit2 = Math.floor(Math.random() * 9) + 1;
var digit3 = Math.floor(Math.random() * 9) + 1;
var digit4 = Math.floor(Math.random() * 9) + 1;
fullNumber.push(digit1, digit2, digit3, digit4);
this.theCode(fullNumber.join("")) ;
}

但我需要创建一个没有重复数字的 4 位随机数。

所以“1234”或“9673”。但不是“1145”或“5668”

有没有一种有效的方法来做到这一点?

最佳答案

您可以使用 this handy shuffle 函数打乱包含数字的数组,并选择前 4 个。

function random4Digit(){
return shuffle( "0123456789".split('') ).join('').substring(0,4);
}

function shuffle(o){
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
}

alert( random4Digit() );

编辑:如果您真的想要一个不以 0 开头的数字:

function random4DigitNumberNotStartingWithZero(){
// I did not include the zero, for the first digit
var digits = "123456789".split(''),
first = shuffle(digits).pop();
// Add "0" to the array
digits.push('0');
return parseInt( first + shuffle(digits).join('').substring(0,3), 10);
}

function shuffle(o){
for(var j, x, i = o.length; i; j = Math.floor(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
}

alert( random4DigitNumberNotStartingWithZero() );

关于javascript - 生成一个无重复数字的随机 4 位数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32104963/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com