博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS洗牌算法
阅读量:6073 次
发布时间:2019-06-20

本文共 642 字,大约阅读时间需要 2 分钟。

洗牌算法

以请将1~10共10个数字的数组随机打乱为列子,目前我知道的有两种方法,一种sort()方法和push()方法。

一、sort方法:

   var arr=[1,2,3,4,5,6,7,8,9];

  function Upset(a,b) {

    //Math.random()函数生成0~1之间的随机数与0.5比较,返回-1

     return Math.random()>.5 ? -1 : 1; 

    //简化上面的方法
    // return 0.5 - Math.random(); 
  }

  arr.sort(Upset); 

x

sort()方法:

参数

描述

sortby

可选。规定排序顺序。必须是函数。

若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。

若 a 等于 b,则返回 0。

若 a 大于 b,则返回一个大于 0 的值。

 二、push()方法;

var arr = [1,2,3,4,5,6,7,8,9,10];

var result = [];
while(arr.length){
  result.push(arr.splice(parseInt(Math.random() * arr.length), 1)[0]);
}
console.log(result);

 

转载于:https://www.cnblogs.com/Ferdinand-B/p/6900821.html

你可能感兴趣的文章
默认虚拟主机设置
查看>>
七周五次课(1月26日)
查看>>
Linux系统一些系统查看指令
查看>>
php中的短标签 太坑人了
查看>>
[译] 可维护的 ETL:使管道更容易支持和扩展的技巧
查看>>
### 继承 ###
查看>>
数组扩展方法之求和
查看>>
astah-professional-7_2_0安装
查看>>
函数是对象-有属性有方法
查看>>
uva 10107 - What is the Median?
查看>>
Linux下基本栈溢出攻击【转】
查看>>
c# 连等算式都在做什么
查看>>
使用c:forEach 控制5个换行
查看>>
java web轻量级开发面试教程摘录,java web面试技巧汇总,如何准备Spring MVC方面的面试...
查看>>
根据调试工具看Vue源码之组件通信(一)
查看>>
Thrift RPC 系列教程(5)—— 接口设计篇:struct & enum设计
查看>>
斯坦福-随机图模型-week1.5
查看>>
灵活的运用Model类
查看>>
hadoop 之分布式安装
查看>>
使用ansible工具部署ceph
查看>>