开发者社区 问答 正文

抽奖列表随机排序算法思路?

screenshot
用户点击某一张牌之后,后端会返回该牌对应的奖品id,前端负责把这个id对应的图片渲染到所点击的那个牌的位置,而其他的牌每次随机显示(不能重复),总奖品数量大于前端展示的五个(一共8个左右),如何能够保证不重复的情况下用最好的效率实现排序?

展开
收起
a123456678 2016-03-13 10:51:31 2270 分享 版权
1 条回答
写回答
取消 提交回答
  • 还是用最经典的洗牌算法吧。

    function shuffer(arr){
        for (i=arr.length-1;i>0;i--){
            let j = Math.floor(Math.random()*(i+1));
            [arr[i],arr[j]]=[arr[j],arr[i]];//es6 写法
     
            /* es5 写法
            var temp = arr[j];
            arr[j]=arr[i];
            arr[i]=temp;
            */
        }
        return arr;
    }

    八个奖品的信息做成一个数组,打乱数组的顺序,然后从中间选前5个就可以了

    2019-07-17 19:02:07
    赞同 1 展开评论
问答分类:
问答标签:
问答地址: