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

查看:104
本文介绍了javascript - 抽奖列表随机排序算法思路?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

还是用最经典的洗牌算法吧。

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个就可以了

这篇关于javascript - 抽奖列表随机排序算法思路?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆