生成随机数组
一道经典的面试题,如何把一个有序数组随机打乱。代码如下:
//生成随机数组,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; }
运行结果如下: