js 數組隨機洗牌

//先定義一個某數值範圍內的隨機數數組

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通常爲數組對象
相關文章
相關標籤/搜索