生成随机整数数组
利用Math.random()
生成min
和max
之间的随机整数,循环加入数组再进行封装。
function getRandArr(n, min, max) {
/*
* n: 随机数组中的元素个数
* min: 随机数组中的元素的最小值
* max: 随机数组中的元素的最大值
*/
const randArr = [];
for (let i = 0; i < n; i++) {
randArr[i] = Math.floor(Math.random() * (max - min + 1)) + min;
}
return randArr;
}
应用示例:
const arr = getRandArr(10, -3, 3)
console.log(arr); // [1, 0, -3, 2, 1, 3, 0, 1, -2, -2]
数组元素随机排序
方法一:
function randomSort(arr) {
return arr.sort(() => Math.random() > 0.5 ? 1 : -1)
}
const arr = [1, 2, 3, 4, 5]
console.log(randomSort(arr)); // [ 4, 3, 2, 5, 1 ]
console.log(randomSort(arr)); // [ 3, 2, 5, 1, 4 ]
console.log(randomSort(arr)); // [ 1, 5, 2, 3, 4 ]
方法二:
function randomSort(arr) {
for (let i = 0; i < arr.length; i++) {
const randomId = Math.floor(Math.random() * arr.length)
const temp = arr[i]
arr[i] = arr[randomId]
arr[randomId] = temp
}
return arr
}
const arr = [1, 2, 3, 4, 5]
console.log(randomSort(arr)); // [ 4, 5, 2, 1, 3 ]
console.log(randomSort(arr)); // [ 3, 4, 1, 2, 5 ]
console.log(randomSort(arr)); // [ 2, 5, 3, 1, 4 ]
- 注:以上两种方法都会改变原数组。