js实现从长度为100的数组中随机抽取5个不同值

方法一:这个是我的方法,望大家指正……

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>从长度为100的数组中随机抽取5个不同值</title>
</head>
<body>
    <script>
        var arr = new Array(100);
        var flag_a = new Array(100);
        /*这个是特色。本身是想给数组每一个元素设置一个flag属性,但是行不通。所以就创建一个相同大小的布尔类型的数组*/
        for (var i = 0; i < arr.length; i++) {
            arr[i] = "这是第"+i+"";
            flag_a[i] = false;
        }
        for (var i = 0; i < 5; i) {
            var r = Math.floor(Math.random()*100);
            if(!flag_a[r]){
                document.write(i+1+":"+arr[r]+"<br/>");
                flag_a[r] = true;
                i++;/*将i++放置到这个地方的话,我觉得挺有创意的……(*^__^*) 嘻嘻……*/
            }
        }
    </script>
</body>
</html>

方法二:这个方法跟上边的有异曲同工之妙,是别人想的,供大家参考……

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>从长度为100的数组中随机抽取5个不同值02</title>
</head>
<body>
    <script>
        var arr = new Array(100);
        for (var i = 0; i < arr.length; i++) {
            arr[i] = "这是第"+i+"";
        }
        for (var i = 0; i < 5;) {
            var r = Math.floor(Math.random()*100);
            if(arr[r]!=null){
                document.write(i+1+":"+arr[r]+"<br/>");
                arr[r] = null;/*通过将使用过的设置为null来判断是否使用过,也很好……*/
                i++;
            }
        }
    </script>
</body>
</html>

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。