资讯专栏INFORMATION COLUMN

数组随机排序

Honwhy / 2004人阅读

摘要:数组中随机交换顺序数组中随机获取一个数值数组中随机获取几个数值方法随机获取个值数组中随机获取几个数值方法如果还剩有元素随机选取一个元素与当前元素进行交换用法随机交换顺序取六个值

数组中随机交换顺序
function shuffle(arr) {
    var i, 
        j,
        temp;
    for (i = arr.length - 1; i > 0; i--) {
        j = Math.floor(Math.random() * (i + 1));
        temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
    return arr;
};
shuffle(["a","b","c","d","e","f","g"])
数组中随机获取一个数值
var a = [1,2,3,3,4,5,6,7,8,9];
function sendNum(arr)
{
    return arr[Math.floor(Math.random()*arr.length)];
}
sendNum(a);
数组中随机获取几个数值方法1
function getArrItem(arr, num) {
      var temp_array = new Array();
      for (var index in arr) {
          temp_array.push(arr[index]);
      }
      var return_array = new Array();
      for (var i = 0; i < num; i++) {
          if (temp_array.length > 0) {
              var arrIndex = Math.floor(Math.random() * temp_array.length);
              return_array[i] = temp_array[arrIndex];
              temp_array.splice(arrIndex, 1);
          } else {
              break;
          }
      }
      return return_array;
} 
getArrItem([1,2,3,4,5,6,7,8,9], 6); // 随机获取6个值
数组中随机获取几个数值方法2
function shuffle(array) {
    var m = array.length,
        t, i;
    // 如果还剩有元素…
    while (m) {
        // 随机选取一个元素…
        i = Math.floor(Math.random() * m--);
        // 与当前元素进行交换
        t = array[m];
        array[m] = array[i];
        array[i] = t;
    }
    return array;
}
// 用法
var message = shuffle([1,2,3,4,5,6,7,8,9]); // 随机交换顺序
message = message.slice(0, 6); // 取六个值

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/89967.html

相关文章

  • 每日一算法之冒泡排序

    摘要:冒泡排序算法是最慢的排序算法之一,但也是一种最容易实现的排序算法。虽然这个算法是正常运行了,但是执行过程,数据是如何变化的呢,让我们一探究竟,这也能让我们真正理解冒泡排序算法,而不是只记得代码。 程序=数据结构+算法 在金庸武侠小说里,绝世高手的武功都是外功和内功的结合,你不仅需要能耍出亮瞎眼的招式,还得有能让招式发挥出真正威力的内功;编程也是如此,我们在学习编程语言的语法、各种工具的...

    ygyooo 评论0 收藏0
  • 数组随机排序:洗牌算法(Fisher–Yates shuffle)

    摘要:代码实现代码一测试用例输出其中,代码二测试用例输出其中,参考资料洗牌算法学习笔记数组随机排序洗牌算法给数组随机排序洗牌算法原理 原理及步骤 1.定义一个数组(shuffled),长度(length)是原数组(arr)长度2.取 0 到 index (初始0) 随机值 rand, shuffled[index] = shuffled[rand], shuffled[rand] = arr...

    张金宝 评论0 收藏0
  • 深入了解JS数组的常用方法

    摘要:数组作为一种重要的数据类型,除了基础的几个方法外,还有很多实用的方法也是我们的必备技能。原数组不会改变。详细语法请参考让每个人都干点啥方法对数组的每个元素执行一次提供的函数,该方法没有返回值。 数组作为一种重要的数据类型,除了基础的 pop、push、shift、unshift 几个方法外,还有很多实用的方法也是我们的必备技能。 假设我们有一队人,如下图:showImg(https:/...

    ningwang 评论0 收藏0
  • Rxjs入门实践-各种排序算法排序过程的可视化展示

    摘要:整个数据流序列 Rxjs入门实践-各种排序算法排序过程的可视化展示 这几天学习下《算法》的排序章节,具体见对排序的总结,想着做点东西,能将各种排序算法的排序过程使用Rxjs通过可视化的方式展示出来,正好练系一下Rxjs的使用本文不会太多介绍Rxjs的基本概念,重点介绍如何用响应式编程的思想来实现功能 在线演示地址 源码 效果图 showImg(https://segmentfault...

    piglei 评论0 收藏0
  • Rxjs入门实践-各种排序算法排序过程的可视化展示

    摘要:整个数据流序列 Rxjs入门实践-各种排序算法排序过程的可视化展示 这几天学习下《算法》的排序章节,具体见对排序的总结,想着做点东西,能将各种排序算法的排序过程使用Rxjs通过可视化的方式展示出来,正好练系一下Rxjs的使用本文不会太多介绍Rxjs的基本概念,重点介绍如何用响应式编程的思想来实现功能 在线演示地址 源码 效果图 showImg(https://segmentfault...

    荆兆峰 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<