kok1219
@kok1219 (koki kobayashi)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

js 重複のないランダムな4桁の数字の作成方法

解決したいこと

重複のないランダムな4桁の数字の作成方法を教えてください!
4桁の数字は作成できますが、重複がでてしまいます、、
お力貸していただきたいです!

該当するソースコード

ソースコードを入力
Hit&Blow! START
<script>
    let inputNum = [];
    let queNum = [];

    function newGame(){
        const numList = ["0","1","2","3","4","5","6","7","8","9"]; 
        for(let i=0; i<4; i++){
            let ran = queNum.push(Math.floor(Math.random() * numList.length));
            queNum[i] = numList[ran];
            numList.splice(ran,1);

            console.log(numList);
        }


    }



</script>
0

3Answer

let queNum = [...Array(10).keys()]
  .map(n=>({r:Math.random(), n}))
  .sort((x1,x2)=>x1.r-x2.r)
  .map(x=>x.n)
  .slice(0,4);
1Like

質問者様のコードを参考に作ってみました。
このような形はいかがでしょうか?

let queNum = [];
const numList = ["0","1","2","3","4","5","6","7","8","9"]; 
for(let i=0; i<4; i++){
    let ran = Math.floor(Math.random() * numList.length);
    queNum[i] = numList[ran];
    numList.splice(ran,1);
}

console.log(queNum);
0Like

Comments

  1. @kok1219

    Questioner

    回答ありがとうございます、、
    まだまだ未熟者なので、
    またご質問させていただくこともありますが、
    よろしくお願いします!!
    感謝です
const database = new Set();
const generateId = () => {
  const id = Math.random().toString().split(".")[1].substring(0, 4);

  if (database.has(id)) {
    return generateId();
  } else {
    database.add(id);
    return id;
  }
};
0Like

Your answer might help someone💌