2018-05-25 22:13:31 +08:00

30 lines
647 B
JavaScript

'use strict';
const MAX_PACKET_ID = Math.pow(2, 30); // 避免 hessian 写大整数
/**
* 创建全局唯一的 packetId
* @return {Number} packetId
*/
exports.nextId = () => {
exports.id += 1;
if (exports.id >= MAX_PACKET_ID) {
exports.id = 1;
}
return exports.id;
};
exports.id = 0;
/* eslint-disable no-bitwise */
exports.shuffle = arr => {
let n = arr.length;
let random;
while (n) {
random = (Math.random() * n--) >>> 0; // 无符号右移位运算符向下取整
[ arr[n], arr[random] ] = [ arr[random], arr[n] ]; // ES6的结构赋值实现变量互换
}
return arr;
};
/* eslint-enable no-bitwise */