javascript随机打乱数组

var arr=[];
for(var i=0;i<10;i++){
    arr[i]=i;
}
arr.sort(function(){ return 0.5 - Math.random() })
var str=arr.join();
alert(str);

代码解释:

sort 是对数组进行排序
它是这样工作的,每次从数组里面挑选两个数 进行运算。
如果传入的参数是0 两个数位置不变。
如果参数小于0 就交换位置
如果参数大于0就不交换位置
接下来用刚才的较大数字跟下一个进行比较。这样循环进行排序

恰好。我们利用了这一点使用了0.5 - Math.random  这个运算的结果要么是大于0,要么是小于0.这样要么交换位置,要么不交换位置。当然大于或者小于0是随即出现的。所以数组就被随即排序了。

时间: 2024-10-12 12:28:39

javascript随机打乱数组的相关文章

简单说说随机打乱数组的方法

原文链接:http://www.gbtags.com/gb/share/5646.htm 把一个数组随机打乱这个需求来源可能就是“洗牌”,所以我们常常称之为洗牌问题.这个问题实现并不复杂,有不少方法可以完成.与其他算法不同,洗牌问题不仅追求速度,还要求“洗得足够开”.今天只想写篇短的,只分享两种比较有代码性的洗牌方法.至于这些方法能不能真正将数组随机打乱,我们下次再讲. 方法一,随机排序法: function shuffle(array) { array.sort(function() { re

随机打乱数组元素

把数组内的元素随机打乱,重新进行排列  C#版: 1 public static void Shuffle<T>(T[] array) 2 { 3 Random random = new Random(); 4 5 for (int i = 0; i < 10; i++) 6 { 7 int idx = random.Next(i, 10); 8 9 //swap elements 10 T tmp = array[i]; 11 array[i] = array[idx]; 12 arr

php保留键随机打乱数组顺序

最近遇到一个需求,把一个数组随机打乱顺序,我们可以用php的shuffle函数,但是这个函数会把数组的键清空建立新的键,那么我们若想保留键只需要利用shuffle函数再做一下处理就可以了.可以自定义一个函数. <?php function retain_key_shuffle(array &$arr){ if (!empty($arr)) { $key = array_keys($arr); shuffle($key); foreach ($key as $value) { $arr2[$v

随机打乱数组算法-扑克洗牌

Option Explicit Dim Poker(53) As Long Private Sub Command1_Click() Dim i&, j&, n& Print "---初始化扑克---" For i = 65 To 68 '花色 For j = 1 To 13 '点数 Poker(n) = CLng("&h" & Chr(i) & Hex(j)) n = n + 1 Next j Next i '大小王

随机打乱数组顺序之随机洗牌算法

var shuffleArray = function(array) { var currentIndex = array.length; var temporary; var toIndex; while (currentIndex) { toIndex = Math.floor(Math.random() * currentIndex--); temporary = array[currentIndex]; array[currentIndex] = array[toIndex]; arra

随机获取数组元素 和 数组元素随机排序

<script type="text/javascript"> //随机取得数组中的一个元素 function Rand(){ var arr=[11,22,33,44]; var a=Math.floor(Math.random()*arr.length);//Math.floor(Math.random()); //Math.floor()方法执行的是向下取整计算,它返回的是小于或等于函数参数,并且与之最接近的整数. //alert(Math.random()*arr.

javascript如何将数组元素的顺序打乱

javascript如何将数组元素的顺序打乱:下面介绍一下如何将数组元素原有的顺序打乱,可能在实际编码中使用不是太频繁,不过也并非一无是处,下面就介绍一下如何实现此功能,代码实例如下: function mytest() { return 0.5-Math.random(); } var arr=[]; for(var i=0;i<100;i++) { arr[i]=i; } arr.sort(mytest) document.write(arr); 以上代码实现我们想要的功能,能够将数组中元素

javascript如何随机输出数组中的内容

javascript如何随机输出数组中的内容: 有时候我们可能需要从数组中随机抽出一项内容,下面就通过一段代码实例介绍一下如何实现此效果. 代码如下: <script type="text/JavaScript"> var theArray=new Array(); theArray[0]="蚂蚁部落"; theArray[1]="蚂蚁部落一"; theArray[2]="蚂蚁部落二"; theArray[3]=&

matlab中训练样本随机打乱的方法

使用randperm(),产生随机种子,然后交换位置,达到随机抽取样本的目的. 官方内容: Matlab自带函数randperm(n)产生1到n的整数的无重复的随机排列,利用它就可以得到无重复的随机数. function p = randperm(n); %RANDPERM Random permutation. % RANDPERM(n) is a random permutation of the integers from 1 to n. % For example, RANDPERM(6