尝试在javascript中以同样的方式对多个数组进行洗牌?

时间:2017-04-07 15:08:35

标签: javascript arrays shuffle

我想在同一个函数

中随机调整这两个数组
var array1 = [1,2,3,4,5];
var array2 = [6,7,8,9,10];

这样它就会随机返回每个数组,例如

4,2,3,5,1
7,9,6,8,10

同样回来的时候我想在两者之间换行,请帮帮忙?

1 个答案:

答案 0 :(得分:1)

Array.prototype添加了shuffle方法以便于访问 - 返回修改后的数组,保持原始状态不变。



Array.prototype.shuffle = function() {
  var rIndex, temp,
    input = this.slice(0),
    cnt = this.length;

  while (cnt) {
    rIndex = Math.floor(Math.random() * cnt);
    temp = input[cnt - 1];
    input[cnt - 1] = input[rIndex];
    input[rIndex] = temp;
    cnt--;
  }

  return input;
}

var array1 = [1, 2, 3, 4, 5];
var array2 = [6, 7, 8, 9, 10];

document.getElementById('shuffle-btn').onclick = function(){
  document.getElementById('output').innerHTML = [array1.shuffle(), array2.shuffle()].join('\n');
}

<button id="shuffle-btn">Shuffle</button>
<pre id="output"></pre>
&#13;
&#13;
&#13;