Javascript: 取隨機且不重複數字


預期達到效果:抽出N個隨機數字,且彼此不重複
想法:(1)先開一個陣列為全部的數字,再設一個新的陣列來裝入選出的數字。
            (2) for 迴圈執行N次程式。取出的數字刪去自己的存在,做第二次隨選數字便不會重複取到此數字。


<html>
<body>


<button onclick="myFunction()">Try it</button>

<p id="demo"></p>

<script>
function myFunction() {
   var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];//原有陣列放全部數字

var result = [];//開另一個空陣列
var ranNum = 5;

for (var i = 0; i < ranNum; i++) {
var ran = Math.floor(Math.random() * arr.length);
result.push(arr.splice(ran, 1)[0]); //舊陣列去除數字轉移到新陣列
};

document.getElementById('demo').innerHTML = result; //最後印出
}
</script>

</body>
</html>

留言