Math.random() 会返回一个 [0, 1) 之间的数字;Math.random() * (max - min) 会得到 [0, max - min) 之间的数字;Math.random() * (max - min) + min 会得到 [min, max) 之间的数字;Math.random() * (max - min + 1) + min 会得到 [min, max + 1) 之间的数字;Math.floor(Math.ramdom() * (max - min + 1) + min) 向下取整会得到 [min, max] 之间的数字;
function getRandomNumber(min, max) {// 返回一个 [min, max] 之间的一个整数return Math.floor(Math.random() * (max - min + 1) + min);}export function shuffle(arr) {let _arr = arr.slice();for(let i = 0; i < _arr.length; i ++) {const j = getRandomNumber(0, i);/* 经典交换let temp = _arr[i];_arr[i] = _arr[j];_arr[j] = temp;*/// ES3 Array.prototype.splice//_arr[i] = _arr.splice(j, 1, _arr[i])[0];// ES6 解构赋值[_arr[i], _arr[j]] = [_arr[j], _arr[i]];}return _arr;}
