亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

JavaScript中實現最高效的數組亂序方法

2019-11-20 14:03:13
字體:
來源:轉載
供稿:網友

數組亂序的意思是,把數組內的所有元素排列順序打亂。

常用的辦法是給數組原生的sort方法傳入一個函數,此函數隨機返回1或-1,達到隨機排列數組元素的目的。

復制代碼 代碼如下:

arr.sort(function(a,b){ return Math.random()>.5 ? -1 : 1;});

這種方法雖直觀,但效率并不高,經我測試,打亂10000個元素的數組,所用時間大概在35ms上下(firefox)

本人一直具有打破沙鍋問到底的優良品質,于是搜索到了一個高效的方法。原文見此

復制代碼 代碼如下:

if (!Array.prototype.shuffle) {
    Array.prototype.shuffle = function() {
        for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
        return this;
    };
}
arr.shuffle();

此方法是為Array.prototype添加了一個函數,叫shuffle――不過叫什么名字不重要啦,重要的是他的效率。

拿我上面那個10000個元素的數組來測試,用這個方法亂序完成僅需要7,8毫秒的時間。

把數組元素增加10倍到100000來測試,第一種sort方法費時500+ms左右,shuffle方法費時40ms左右,差別是大大的。

完整測試代碼:

復制代碼 代碼如下:

var count = 100000,arr = [];
for(var i=0;i.5 ? -1 : 1;});
Array.prototype.sort.call(arr,function(a,b){ return Math.random()>.5 ? -1 : 1;});
document.write(arr+'
');
var t1 = new Date().getTime();
document.write(t1-t);

//以下方法效率最高
if (!Array.prototype.shuffle) {
    Array.prototype.shuffle = function() {
        for(var j, x, i = this.length; i; j = parseInt(Math.random() * i), x = this[--i], this[i] = this[j], this[j] = x);
        return this;
    };
}
var t = new Date().getTime();
arr.shuffle();
document.write('
'+arr+'
');
var t1 = new Date().getTime();
document.write(t1-t);

另外,大家有沒有注意到shuffle代碼里的for循環,他沒有后半截!也就是只有for(..)卻沒有后面的{..},居然可以這樣寫!而且居然正常執行!好奇特,我得去博客園問問。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品福利观看| 91成人国产在线观看| 神马久久桃色视频| 久久久精品免费视频| 欧美午夜精品久久久久久人妖| 欧美亚洲成人精品| 国产精品久久久久国产a级| 亚洲人成亚洲人成在线观看| 国产一区二区三区视频免费| 国产成人免费av电影| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲精品v欧美精品v日韩精品| 欧美电影院免费观看| 精品国产一区av| 久久久亚洲网站| 韩国国内大量揄拍精品视频| 亚洲图片制服诱惑| 中文字幕在线看视频国产欧美| 深夜福利亚洲导航| 日韩电影大全免费观看2023年上| 日韩欧美大尺度| 亚洲成人激情在线| 色综合五月天导航| 日韩网站在线观看| 91中文字幕在线| 另类天堂视频在线观看| 亚洲色图激情小说| 亚洲欧洲偷拍精品| 国产精品18久久久久久首页狼| 亚洲最大成人网色| 狠狠躁天天躁日日躁欧美| 亚洲一区二区福利| 亚洲精品第一国产综合精品| 亚洲欧美日韩久久久久久| 亚洲欧美国产va在线影院| 久久99久久99精品免观看粉嫩| 欧美另类第一页| 欧美日韩综合视频| 欧美精品亚州精品| 日韩美女免费观看| 欧美日韩成人在线播放| 国产91精品久久久久久| 亚洲人成77777在线观看网| 日本精品性网站在线观看| 日韩成人黄色av| 亚洲一区二区三| 成人在线激情视频| 91免费的视频在线播放| 中文字幕亚洲字幕| 久久久久久一区二区三区| 精品成人国产在线观看男人呻吟| 日韩电视剧在线观看免费网站| 欧美另类极品videosbestfree| 伊人激情综合网| 日韩av手机在线观看| 91系列在线观看| 亚洲天堂免费视频| 狠狠色狠狠色综合日日五| 亚洲一区二区三区xxx视频| 日本精品免费一区二区三区| 色多多国产成人永久免费网站| 国产成人精品最新| 这里只有精品视频在线| 欧美日韩免费区域视频在线观看| 黑丝美女久久久| 中文字幕欧美日韩在线| 91精品国产91久久久久福利| 97国产精品视频| 伊人伊成久久人综合网站| 岛国视频午夜一区免费在线观看| 欧美日本在线视频中文字字幕| 精品日韩中文字幕| 国产精品久久久| 亚洲综合成人婷婷小说| 国产伦精品免费视频| 欧美激情亚洲另类| 欧美激情videoshd| 亚洲国产日韩欧美在线99| 亚洲国产精品人人爽夜夜爽| 亚洲香蕉在线观看| 4438全国亚洲精品在线观看视频| 欧美在线视频观看免费网站| 亚洲自拍偷拍色片视频| 人人澡人人澡人人看欧美| 91免费人成网站在线观看18| 亚洲成人免费网站| 欧美国产亚洲精品久久久8v| 91sao在线观看国产| 欧美午夜性色大片在线观看| 欧美国产日韩一区二区三区| 日韩精品亚洲精品| 亚洲视频在线观看免费| 日韩欧美999| 92版电视剧仙鹤神针在线观看| 国产午夜精品一区理论片飘花| 国产精品成人va在线观看| 久久影院资源网| 欧美高清性猛交| 日韩精品视频观看| 国产一区二区三区18| 亚洲人成77777在线观看网| 国产精品久久久91| 精品视频在线播放色网色视频| 精品国偷自产在线视频| 一区二区在线视频播放| 欧美视频二区36p| 欧美电影第一页| 国产成人精品久久亚洲高清不卡| 一区二区三区精品99久久| 高清视频欧美一级| 国产精品国产三级国产aⅴ浪潮| 国产精品高清在线观看| 欧美午夜影院在线视频| 国产精品偷伦视频免费观看国产| 国产精品永久免费观看| 欧美激情在线观看视频| 欧美性视频网站| 亚洲精品999| 国产精品极品美女粉嫩高清在线| 欧美精品免费看| 成人精品一区二区三区电影免费| 亚洲a在线观看| 亚洲欧美资源在线| 精品中文字幕在线观看| 久久国产精品久久久| 韩国v欧美v日本v亚洲| 久久精品亚洲一区| 亚洲欧美日韩国产中文专区| 国产精品手机播放| 久久久国产一区二区| 日本欧美黄网站| 国产成人短视频| 亚洲专区在线视频| 久久精品2019中文字幕| 亚洲国产精久久久久久久| 欧美激情综合色综合啪啪五月| 欧美裸体男粗大视频在线观看| 国产精品视频99| 91免费人成网站在线观看18| 欧美视频在线免费| 国外成人在线视频| 日韩有码在线视频| 性金发美女69hd大尺寸| 中文字幕视频一区二区在线有码| 国产精品国产三级国产aⅴ9色| 海角国产乱辈乱精品视频| 91日本在线视频| 97在线视频免费观看| 亚洲精品天天看| 亚洲午夜精品视频| 亚洲国产中文字幕在线观看| 亚洲精品国产精品自产a区红杏吧| 在线日韩日本国产亚洲| 在线看日韩欧美| 精品国产91久久久久久老师| 亚洲成人网在线观看| 国产精品黄色影片导航在线观看| 亚洲福利在线观看| 搡老女人一区二区三区视频tv| 欧美刺激性大交免费视频| 欧洲日韩成人av| 中文字幕日韩电影| 国产精品久久91| 欧美黑人xxxⅹ高潮交|