一、从一个数组中随机筛选出多个数据(可重复)
定义函数 filter,直接调用即可。
function filter(arr, num) {
return new Array(num)
.fill(1)
.map(item => arr[Math.floor(Math.random() * arr.length)])
}
//从[1,2,3,4,5,6,7,8,9]随机筛选5位数
console.log(filter([1,2,3,4,5,6,7,8,9], 5))
// 打印结果
[6,8,1,2,1]
二、从一个数组中随机筛选出多个数据(不可重复)
定义函数 noRepeatFilter,直接调用即可。
注意:此时用到了splice方法,所以需要提前拷贝一下原来的数组(我使用的JSON),以免影响原本的数组数据。
function noRepeatFilter(arr, num){
let newArr = JSON.parse(JSON.stringify(arr));
let resultData = [];
for (let i = 0; i < num; i++) {
let random = Math.floor(Math.random() * newArr.length);
resultData.push(newArr[random]);
newArr.splice(random, 1);
}
return resultData;
}
//从[1,2,3,4,5,6,7,8,9]随机筛选5位数
console.log(noRepeatFilter([1,2,3,4,5,6,7,8,9], 5))
// 打印结果
[5,7,6,1,3]