javascript - js完全打乱数组

查看:66
本文介绍了javascript - js完全打乱数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

var arr = [0,1,2,3,4,5,6,7]

完全打乱,要求,每个元素的位置必须要变动

解决方案

首先,题主并不是要传统的数组乱序,如果是传统的数组乱序,当然首推 Fisher-Yates,Math.random() 的黑科技并不能保证概率的一致,详情可以看我以前的分析 https://github.com/hanzichi/u...

如果每个位置都需要变动,随便写了一段代码,勉强可以用:

function shuffle(a) {
  let len = a.length;
  let shuffled = Array(len);

  for (let i = len; i--; ) {
    let rand = ~~(Math.random() * i);
    shuffled[i] = a[rand];
    a[rand] = a[i];
  }

  return shuffled;
}

新建了一个数组,并且污染了原数组,很不优雅,题主可以自己改进下

这篇关于javascript - js完全打乱数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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