export class ArrayUtil { /** * 随机获取数组中的一个元素 * @param array 目标数组 */ static getRandomInArray(array: T[]): T { return array[Math.floor(Math.random() * array.length)]; } /** * 随机获取数组中的多个元素 * @param array 目标数组 * @param len 获取长度 */ static getRandomArrayInArray(array: T[], len: number): T[] { let newArr = Array.from(array); this.arrayRandomSort(newArr); return newArr.slice(0, len); } /** * 打乱数组 * @param array 目标数组 */ static arrayRandomSort(array: T[]): T[] { let len = array.length; let idx = 0; while (len) { idx = (Math.random() * --len) >>> 0; [array[len], array[idx]] = [array[idx], array[len]] } return array; } }