spadgerjs
Version:
19 lines (18 loc) • 507 B
text/typescript
/**
* @name shuffle
* @description 数组洗牌,返回顺序随机的新数组(浅拷贝)
* @param {Array} arr 需要洗牌的数组,纯数字
* @returns {Array} 打乱后的新数组
* @example
* sp.shuffle([1,2,3]) //[3,2,1]
* sp.shuffle([1]) //[1]
*/
export function shuffle([...arr]: Array<number>): Array<number> {
arr = arr.slice();
let i: number = arr.length;
while (i) {
let j: number = Math.floor(Math.random() * i--);
[arr[j], arr[i]] = [arr[i], arr[j]];
}
return arr;
}