123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161 |
- /**
- * 工具
- */
- export default class Utils {
- /**
- * 获取不重复的随机数
- * @param minValue 最小值
- * @param maxValue 最大值
- * @param valueNum 随机个数
- */
- static getRandomValueDif(minValue: number, maxValue: number, valueNum: number) {
- // 全部随机数值
- let allNums = new Array;
- // 判断获取随机数个数
- let size = valueNum ? (valueNum > maxValue - minValue + 1 ? maxValue - minValue + 1 : valueNum) : 1;
- // 生成随机数值区间数组
- for (let i = minValue, k = 0; i <= maxValue; i++ , k++) {
- allNums[k] = i;
- }
- let arr = []
- // 随机从数组里面取值
- allNums.sort(function () { return 0.5 - Math.random(); });
- for (let j = 0; j < size; j++) {
- let index = Math.floor(Math.random() * allNums.length);
- arr.push(allNums[index]);
- let tmp = allNums[index];
- allNums[index] = allNums[allNums.length - 1];
- allNums[allNums.length - 1] = tmp;
- allNums.pop();
- }
- return arr;
- }
- /**
- * 获取范围内的随机数
- * @param minValue 最小值
- * @param maxValue 最大值
- */
- static getRangeRandom(minValue: number, maxValue: number) {
- // 获取数组从第一个开始到指定个数的下标区间
- return Utils.getRandomValueDif(minValue, maxValue, 1)[0];
- }
- /**
- * 数字转时间格式
- * @param sec
- * @returns
- */
- static secondsFormat(sec, havehour:boolean){
- let hour = Math.floor(sec / 3600);
- let minute = Math.floor((sec - hour * 3600) / 60);
- let second = sec - hour * 3600 - minute * 60;
- let hour1 = ''
- let minute1 = ''
- let second1 = ''
- if (hour < 10) {
- hour1 = "0" + hour;
- }else{
- hour1 = "" + hour;
- }
- if (minute < 10) {
- minute1 = "0" + minute;
- }else{
- minute1 = "" + minute;
- }
- if (second < 10) {
- second1 = "0" + second;
- }else{
- second1 = "" + second;
- }
-
- if(havehour){
- return hour1 + ":" + minute1 + ":" + second1;
- }else{
- return minute1 + ":" + second1;
- }
-
- }
- /**
- * 版本号比较
- * @param v1
- * @param v2
- * @returns
- */
- static compareVersion(v1, v2) {
- v1 = v1.split('.')
- v2 = v2.split('.')
- const len = Math.max(v1.length, v2.length)
-
- while (v1.length < len) {
- v1.push('0')
- }
- while (v2.length < len) {
- v2.push('0')
- }
-
- for (let i = 0; i < len; i++) {
- const num1 = parseInt(v1[i])
- const num2 = parseInt(v2[i])
-
- if (num1 > num2) {
- return 1
- } else if (num1 < num2) {
- return -1
- }
- }
-
- return 0
- }
- /**
- * 混淆答案在字库的位置
- */
- public static initHunXiaoZiKu(data){
- let TiData_ChengYu = data
-
- //随机下混淆字库 成语
- for (let index = 0; index < TiData_ChengYu.length; index++) {
- const element = TiData_ChengYu[index];
- let hunxiao = String(element[0]).split(',')
- let answer = String(element[1]).split(',')
- //console.log('混淆', hunxiao, answer)
- let shurr = Utils.getRandomValueDif(0,20,4) //gameShareAdsVideo.getRandomValueDif(0,23,4)
- //console.log('随机数', shurr)
- let no = 0
- let zikustr = ''
- let shuzu = []
- for (let index = 0; index < shurr.length; index++) {
- const element = shurr[index];
- shuzu[element] = answer[no]
- no++
- }
- for (let index = 0; index < 21; index++) {
- const element = shuzu[index];
- let xin = ''
- if(index != 0){
- xin = ','
- }
- if(element == null || element == undefined){
- xin += hunxiao.shift()
- }else{
- xin += element
- }
- zikustr += xin
- }
- TiData_ChengYu[index][0] = zikustr
- //console.log('混淆后的数据', TiData_ChengYu[index][0])
- }
- }
- }
|