zoukankan      html  css  js  c++  java
  • 简单的乱序方法--------黄丕巧

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

    思想:首先我们要先找出一个所有人都有又不同的参数,这个很明显用户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;
    }
       
  • 相关阅读:
    web http协议
    swoole udp
    swoole线程和进程
    SVN中trunk,branches,tags用法详解
    mysql外键使用和事物使用
    xml
    dedecms开启报错
    Django CBV方法装饰器
    Django Cookie和Session
    ORM基础5
  • 原文地址:https://www.cnblogs.com/lihuobao/p/5805619.html
Copyright © 2011-2022 走看看