一道經典的面試題,如何把一個有序數組隨機打亂。代碼以下:面試
//生成隨機數組,start,end 分別數隨機數組的首個數和最後一個數, start < end function GetRandomArr(start, end) { var initArr = []; for (var i = start; i <= end; i++) { initArr.push(i); } console.log(initArr); for (var i = 0; i < initArr.length; i++) { var randomNum = GetRandomNum(0, initArr.length - i); var temp = initArr[randomNum]; initArr[randomNum] = initArr[initArr.length - 1- i ]; initArr[initArr.length - 1- i ] = temp; } console.log(initArr); } //生成隨機數 function GetRandomNum(start, end) { var num = Math.random() * (end - start) + start; num = parseInt(num); return num; }
運行結果以下:數組