//先定義一個某數值範圍內的隨機數數組
function getRandom(min, max) { return Math.floor(Math.random() * (max - min + 1) + min) }
// 克隆數組方法dom
/** * 克隆數組 * @param {array} arr 原數組 * @return {array} 新數組 */ function cloneArr(arr) { // 從第一個字符就開始 copy // slice(start,end) 方法可從已有的數組中返回選定的元素。 return arr.slice(0) }
//洗牌spa
function shuffle(arr, flag = false) { // console.log('arr',arr) let newArr = [] flag ? (newArr = arr) : (newArr = cloneArr(arr)) for (let i = 0; i < newArr.length; i++) { let j = getRandom(0, i) let temp = newArr[i] newArr[i] = newArr[j] newArr[j] = temp } // console.log('arr',arr,newArr) return newArr }
//調用code
shuffle(list)//list通常爲數組對象