简要咨询咨询QQ网站导航网站搜索手机站点联系我们设为首页加入收藏 

JS随机打乱数组的方法小结

来源:易贤网   阅读:1131 次  日期:2016-07-12 16:18:42

温馨提示:易贤网小编为您整理了“JS随机打乱数组的方法小结”,方便广大网友查阅!

JS中,要打乱数组有很多方法,网上流传一个国外人写的方法,我认为是最精简的了:

function randomsort(a, b) {

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

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

}

var arr = [1, 2, 3, 4, 5];

arr.sort(randomsort);

这里介绍下sort()函数,在JS中Array对象里内置了一个函数:

arrayobj.sort([sortfunction])

此方法将 Array 对象进行适当的排序;在执行过程中并不会创建新的 Array 对象。

sortFunction为可选项。

是用来确定元素顺序的函数的名称。如果这个参数被省略,那么元素将按照 ASCII 字符顺序进行升序排列。

sortFunction方法有两个参数。分别代表每次排序比较时的两个数组项。sort()排序时每次比较两个数组项都回执行这个参数,并把两个比较的数组项作为参数传递给这个函数。当函数返回值为1的时候就交换两个数组项的顺序,否则就不交换。

我们可以对上面的randomsort()稍作修改,来实现升序排列和降序排列:

function asc(a,b) {

return a < b ? -1 : 1;//如果a<b不交换,否则交换,即升序排列

}

function desc(a,b) {

return a > b ? -1 : 1;;//如果a>b不交换,否则交换,即将序排列

}

另外,可以直接把一个无名函数直接放到sort()方法的调用中。如下的例子是将奇数排在前面,偶数排在后面,例子如下:

以下是引用片段:

var arrA = [6,2,4,3,5,1];

arrA.sort( function(x, y) {

if (x % 2 ==0) return 1;

if (x % 2 !=0) return -1;

});

document.writeln(arrA); //输出:1,5,3,4,6,2

希望本文所述对大家JavaScript程序设计有所帮助。

更多信息请查看网络编程
点此处就本文及相关问题在本站进行非正式的简要咨询(便捷快速)】     【点此处查询各地各类考试咨询QQ号码及交流群
上一篇:JS实现关闭当前页而不弹出提示框的方法
下一篇:JS产生随机数的几个用法详解
易贤网手机网站地址:JS随机打乱数组的方法小结
由于各方面情况的不断调整与变化,易贤网提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!