博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何随机洗牌一个数组
阅读量:5292 次
发布时间:2019-06-14

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

在使用javascript的时候有可能会有随机打乱一个数组的需求,我们可以利用数组的sort方法和Math.random来随机排序

const arr = [1,2,3];arr.sort(() => 0.5 - Math.random())console.log(arr)

主要利用了Math.random()生成随机数与0.5的大小比较来排序,如果0.5 - Math.random()大于或等于0,数组中的两个数位置不变,小于0就交换位置。

乍一看这样是达到了随机排序的效果,但是实际上这个排序是不那么随机的。具体分析可以参考。

 

一个更好方式是采用算法,在此处的使用方式如下

const arr = [1,2,3,4,5,6]Array.prototype.shuffle = function() {  var i = this.length, j, temp;  if ( i == 0 ) return this;  while ( --i ) {     j = Math.floor( Math.random() * ( i + 1 ) );     temp = this[i];     this[i] = this[j];     this[j] = temp;  }  return this;}arr.shuffle()

转载于:https://www.cnblogs.com/tgxh/p/7403639.html

你可能感兴趣的文章
CNN的理解
查看>>
数据手册中Accuracy和Precision的准确定义
查看>>
2.5 定义FTP工具的各种方法
查看>>
linux命令
查看>>
PHP中XPATH 实现xml及html文件快速解析(附xml做小型数据库实现六级单词快速查询实例)...
查看>>
2017-2018-2 20155309 南皓芯 Exp9 Web安全基础
查看>>
Leetcode Reverse Words in a String
查看>>
一文读懂内网、公网和NAT
查看>>
NotMapped属性特性
查看>>
go 语言 基础 类型(1)
查看>>
idea的初次使用
查看>>
正则表达式
查看>>
golang数据结构之定时器篇
查看>>
IBM内存三技术:Chipkill、MPX、MM
查看>>
css3伪类元素
查看>>
php部分,一个用递归无限分类的方法
查看>>
android,eclipse
查看>>
SpringBoot 上下文获取注入的Bean
查看>>
归并排序的进一步理解
查看>>
C - Wooden Sticks
查看>>