functiongroup(array, subGroupLength){let index =0;let newArray =[];while(index < array.length){
newArray.push(array.slice(index, index += subGroupLength));}return newArray;}
指定范围内的随机整数
functionrandom(minimum, maximum){var number = Math.floor(minimum + Math.random()*(maximum - minimum));return number;}
数字转汉字
functionconvertToChinaNum(num){var arr1 =['零','一','二','三','四','五','六','七','八','九'];var arr2 =['','十','百','千','万','十','百','千','亿','十','百','千','万','十','百','千','亿'];//可继续追加更高位转换值if(!num ||isNaN(num)){return"零";}var english = num.toString().split("")var result ="";for(var i =0; i < english.length; i++){var des_i = english.length -1- i;//倒序排列设值
result = arr2[i]+ result;var arr1_index = english[des_i];
result = arr1[arr1_index]+ result;}//将[零千、零百]换成[零] [十零]换成[十]
result = result.replace(/零(千|百|十)/g,'零').replace(/十零/g,'十');//合并中间多个零为一个零
result = result.replace(/零+/g,'零');//将[零亿]换成[亿][零万]换成[万]
result = result.replace(/零亿/g,'亿').replace(/零万/g,'万');//将[亿万]换成[亿]
result = result.replace(/亿万/g,'亿');//移除末尾的零
result = result.replace(/零+$/,'')//将[零一十]换成[零十]//result = result.replace(/零一十/g, '零十');//正规读法是零一十//将[一十]换成[十]
result = result.replace(/^一十/g,'十');return result;}
let taskList =[];let task;functionmockTask(count){// 创建多个异步函数for(let i =0; i < count; i++){letfn=()=>{let time =parseInt(Math.random()*1000);setTimeout(()=>{
console.log(`队列${i +1}: 耗时${time}ms`);
task.next();}, time);};
taskList.push(fn);}function*main(){for(const iterator of taskList){yielditerator();}}
task =main();
task.next();}mockTask(10);
时间格式转换
<html><head><metacharset="UTF-8"><title>日期</title></head><body><divid="pDate"></div></body></html><scripttype="text/javascript">var sWeek =newArray("星期日","星期一","星期二","星期三","星期四","星期五","星期六");var dNow =newDate();var CalendarData =newArray(100);var madd =newArray(12);var tgString ="甲乙丙丁戊己庚辛壬癸";var dzString ="子丑寅卯辰巳午未申酉戌亥";var numString ="一二三四五六七八九十";var monString ="正二三四五六七八九十冬腊";var sx ="鼠牛虎兔龙蛇马羊猴鸡狗猪";var cYear, cMonth, cDay, TheDate;
CalendarData =newArray(0xA4B,0x5164B,0x6A5,0x6D4,0x415B5,0x2B6,0x957,0x2092F,0x497,0x60C96,0xD4A,0xEA5,0x50DA9,0x5AD,0x2B6,0x3126E,0x92E,0x7192D,0xC95,0xD4A,0x61B4A,0xB55,0x56A,0x4155B,0x25D,0x92D,0x2192B,0xA95,0x71695,0x6CA,0xB55,0x50AB5,0x4DA,0xA5B,0x30A57,0x52B,0x8152A,0xE95,0x6AA,0x615AA,0xAB5,0x4B6,0x414AE,0xA57,0x526,0x31D26,0xD95,0x70B55,0x56A,0x96D,0x5095D,0x4AD,0xA4D,0x41A4D,0xD25,0x81AA5,0xB54,0xB6A,0x612DA,0x95B,0x49B,0x41497,0xA4B,0xA164B,0x6A5,0x6D4,0x615B4,0xAB6,0x957,0x5092F,0x497,0x64B,0x30D4A,0xEA5,0x80D65,0x5AC,0xAB6,0x5126D,0x92E,0xC96,0x41A95,0xD4A,0xDA5,0x20B55,0x56A,0x7155B,0x25D,0x92D,0x5192B,0xA95,0xB4A,0x416AA,0xAD5,0x90AB5,0x4BA,0xA5B,0x60A57,0x52B,0xA93,0x40E95);
madd[0]=0;
madd[1]=31;
madd[2]=59;
madd[3]=90;
madd[4]=120;
madd[5]=151;
madd[6]=181;
madd[7]=212;
madd[8]=243;
madd[9]=273;
madd[10]=304;
madd[11]=334;functionGetBit(m, n){return(m >> n)&1;}functione2c(){
TheDate =(arguments.length !=3)?newDate():newDate(arguments[0], arguments[1], arguments[2]);var total, m, n, k;var isEnd =false;var tmp = TheDate.getFullYear();
total =(tmp -1921)*365+ Math.floor((tmp -1921)/4)+ madd[TheDate.getMonth()]+ TheDate.getDate()-38;if(TheDate.getYear()%4==0&& TheDate.getMonth()>1){
total++;}for(m =0;; m++){
k =(CalendarData[m]<0xfff)?11:12;for(n = k; n >=0; n--){if(total <=29+GetBit(CalendarData[m], n)){
isEnd =true;break;}
total = total -29-GetBit(CalendarData[m], n);}if(isEnd)break;}
cYear =1921+ m;
cMonth = k - n +1;
cDay = total;if(k ==12){if(cMonth == Math.floor(CalendarData[m]/0x10000)+1){
cMonth =1- cMonth;}if(cMonth > Math.floor(CalendarData[m]/0x10000)+1){
cMonth--;}}}/*戊戌狗年 腊月廿*/functionGetcDateString(){var tmp ="";
tmp += tgString.charAt((cYear -4)%10);
tmp += dzString.charAt((cYear -4)%12);
tmp += sx.charAt((cYear -4)%12);
tmp +="年 农历";if(cMonth <1){
tmp +="(闰)";
tmp += monString.charAt(-cMonth -1);}else{
tmp += monString.charAt(cMonth -1);}
tmp +="月";// console.log();
tmp +=(cDay <11)?"初":((cDay <20)?"十":((cDay <30)?"廿":"三十"));// console.log(tmp);if(cDay %10!=0|| cDay ==10){
tmp += numString.charAt((cDay -1)%10);}// console.log(tmp);return tmp;}functionGetLunarDay(solarYear, solarMonth, solarDay){if(solarYear <1921){return"";}else{
solarMonth =(parseInt(solarMonth)>0)?(solarMonth -1):11;e2c(solarYear, solarMonth, solarDay);returnGetcDateString();}}functiongetFullYear(d){// 修正firefox下year错误
yr = d.getYear();if(yr <1000) yr +=1900;return yr;}/*写入页面*/functionshowDate(){varD=newDate();var yy =D.getFullYear();var mm =D.getMonth()+1;var dd =D.getDate();var ww =D.getDay();var ss =parseInt(D.getTime()/1000);var h =D.getHours();var m =D.getMinutes();var s =D.getSeconds();var sValue =getFullYear(dNow)+"年"+(dNow.getMonth()+1)+"月"+ dNow.getDate()+"日"+" "+ sWeek[dNow.getDay()]+" ";
sValue +=GetLunarDay(yy, mm, dd);
sValue +=shapetime(h,m,s);
document.getElementById("pDate").innerHTML = sValue;setTimeout("showDate()",500);};/*格式化时间*/functionshapetime(h, m, s){if(s <=9) s ="0"+ s;if(m <=9) m ="0"+ m;if(h <=9) h ="0"+ h;return h +":"+ m +":"+ s
}
window.onload = showDate;</script>
输入一个值,返回其数据类型
/**
* 输入一个值,返回其数据类型
* @param {*} para
* @returns
*/functionreturnDataType(para){returnObject.prototype.toString.call(para).slice(8,-1);}
计算数的阶乘
/**
* 计算数的阶乘
* @param {*} num
* @returns
*/functionfactorial(num){if(num <0)return-1;return num ===1?1: num *factorial(--num);}
两数之间累乘
/**
* 两数之间累乘
* @param {*} x
* @param {*} y
* @returns
*/functionmultiplicative(x, y){let count;if(x < y){
count = x;for(let i = x +1; i <= y; i++){
count *= i;}return count;}else{
count = y;for(let i = y +1; i <= x; i++){
count *= i;}return count;}}
计算函数执行所用时间
/**
* 计算函数执行所用时间 带参数
* @param {*} fn
* @returns
*/functioncomputeTime(fn){let startTime =newDate().getTime();let p =[];for(let i =1; i < arguments.length; i++){
p.push(arguments[i]);}fn.apply(null, p);let endTime =newDate().getTime();let Time = endTime - startTime;return Time;}
数字超过99显示99+
/**
* 数字超过99显示99+
* @param { Number } num
* @param { String } str 后缀可自定义
* @returns
*/functionnumFilter(num, str ="+"){if(Object.prototype.toString.call(str).slice(8,-1)!=="String"){
console.warn("第二参数为最好为字符串类型!");}
num = num ? num -0:0;if(num >99){return"99"+ str;}else{return num;}}