最有效的阵列洗牌 [英] Most efficient array shuffler

查看:103
本文介绍了最有效的阵列洗牌的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎样才能以最有效的方式洗牌数组的值可能吗?

How can I shuffle an array's values in the most efficient manner possible?

每个元素只是一个字符串包含HTML。

Each element is just a string containing HTML.

推荐答案

您有几个选择。

首先,你可以使用的 stupidely天真的分拣机...

First, you could use the stupidely naïve sorter...

arr = arr.sort(function() {
    return Math.random() - .5
});

的jsfiddle

这是快速和肮脏的,但通常被认为是不好的做法。

This is quick and dirty but often considered bad practice.

进一步阅读

的方式随机排序的阵列费雪耶茨洗牌

The best way to randomly sort an Array is with the Fisher-Yates shuffle.

var newArr = [];

while (arr.length) {

   var randomIndex = Math.floor(Math.random() * arr.length),
       element = arr.splice(randomIndex, 1)

   newArr.push(element[0]);       

}

JSBin

这篇关于最有效的阵列洗牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆