简单的乱序方法--------黄丕巧

本文介绍了一种利用用户ID实现试题列表随机排序的方法,确保每位用户的试题顺序不同,同时提供了具体的JavaScript实现示例。

在实际开发过程中,类似于试题之类的数据列表,产品往往希望所有人的试题和答案顺序都尽量是不同的,这时候就需要我们对数据列表进行处理:

思想:首先我们要先找出一个所有人都有又不同的参数,这个很明显用户id就是,然后根据用户id设计一个简单的算法即可得到乱序之后的数据列表;

示例:

 

 
outOfOrderDispatch: function (data,randomNumber) {//randomNumber为uid时即可实现目的
var originDate = data;
var newData = [];
var _length = originDate.length;
var _randomNumber = parseInt(randomNumber) || parseInt(Math.random()*100000);
  //以原数组的长度为新数组填充空值
for(var i=0;i<_length;i++){
newData.push("");
}
  //通过随机的算法获得新的索引填入新的数组,如果已存在则向后顺推
for(var j=0;j<_length;j++){
var newIndex = Math.ceil(Math.abs(Math.sin(j+_randomNumber))*100)%_length;
isTrue(j,newIndex);
}
function isTrue(currentIndex,index) {
if(!!newData[index]){
index++;
if(index >= _length){
index = 0;
}
arguments.callee(currentIndex,index);
}else {
newData[index] = (originDate[currentIndex]);
}
}
return newData;
}
  

转载于:https://www.cnblogs.com/lihuobao/p/5805619.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值