class JSFun { /** * 关键字去重 * @param arr 数组 * @param key 关键字 * @returns 去重后 */ unique(arr, key) { let res = [] let obj = {} for (let i = 0; i < arr.length; i++) { if (!obj[arr[i][key]]) { res.push(arr[i]) obj[arr[i][key]] = true } } return res } /** * 同步睡眠 * @param {Number} ms * @returns */ sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms)) /** * 多维数组转一维 * @param {Array} arr * @returns */ flatten(arr) { return [].concat( ...arr.map(x => (Array.isArray(x) ? this.flatten(x) : x)) ) } /** * 随机数 * @param {minNum} minNum 最小值 * @param {maxNum} maxNum 最大值 * @return {Number} 返回一个最大值和最小值之间的随机数 */ randomNum(minNum, maxNum) { switch (arguments.length) { case 1: return parseInt(Math.random() * minNum + 1, 10) case 2: return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10) default: return 0 } } } export default JSFun()