分享几个在javascript开发过程中常用的一些工具函数:
- 获取非行间样式:
// 第一个参数为对象obj 第二个参数为样式attr
function getStyle(obj, attr) {
if (obj.currentStyle) {
return obj.currentStyle[attr];
} else {
return getComputedStyle(obj)[attr];
}
}
- 获取随机数:
//获取从m到n之间的随机数,如getRandom(2,5)
//返回值:返回m到n之间的一个随机数
function getRandom(m, n) {
return parseInt(Math.random() * (n - m)) + m;
}
- 补零操作:
//如果n小于10,返回0n,如(01,02...)
//如果n大于10,返回n
//返回值:返回字符串n
function toDouble(n) {
return n < 10 ? '0' + n : '' + n;
}
- 数组去重(1):
// 在数组中寻找一个元素是否存在,例如findInArray(arr1,2)
//返回值:
//如果a存在数组中,返回true
//如果a不存在数组中,返回false
function findInArray(arr, a) {
for (var i = 0; i < arr.length; i++) {
if (a == arr[i]) {
return true;
}
}
return false;
}
- 数组去重(2):
//说明:(json方法)
//利用json中name的唯一特性
//返回值:返回新的数组
function findInArrayByJson(array) {
var json = {};
for (var i = 0; i < array.length; i++) {
json[array[i]] = 'xyz';
}
var array2 = [];
for (var name in json) {
array2.push(name);
}
return array2;
}
- 获取字符串中出现次数最多的字符及次数:
//获取字符串中出现次数最多的字符及次数:findMostElementInString
//说明:给定字符串,给出字符串中出现最多的字符及出现的次数
//返回值:元素 + 个数/例如:(a:8)
function findMostElementInString(str) {
var json = {};
for (var i = 0; i < str.length; i++) {
if (json[str.charAt(i)]) {
json[str.charAt(i)]++;
} else {
json[str.charAt(i)] = 1;
}
}
var max = '';
var maxCount = 0;
for (var name in json) {
if (json[name] > maxCount) {
max = name;
maxCount = json[name];
}
}
return max + ':' + maxCount;
}
- 倒计时:
//返回值:距离现在还有 day+'天'+hours+'小时'+minutes+'分钟'+seconds+'秒';
function getDate() {
function getTime() {
var oSetDate = new Date();
oSetDate.setFullYear(2017, 3, 1);
oSetDate.setHours(0, 0, 0);
var oCurrentDate = new Date();
var t = (oSetDate.getTime() - oCurrentDate.getTime()) / 1000;
var day = parseInt(t / 86400);
t = t % 86400;
var hours = parseInt(t / 3600);
t = t % 3600;
var minutes = parseInt(t / 60);
var seconds = parseInt(t % 60);
return [].innerHTML = day + '天' + hours + '小时' + minutes + '分钟' + seconds + '秒';
}
getTime();
setInterval(getTime, 1000);
}
- 毫秒转换:
//毫秒转换:MillisecondToDate
//把毫秒转为 x天y小时z分钟s秒
function MillisecondToDate(ms) {
var s = parseInt(ms / 1000); //秒
var d = parseInt(s / (24 * 60 * 60)); //天数
s %= 24 * 60 * 60; //去掉天的秒数
var h = parseInt(s / (60 * 60)); //小时
s %= 60 * 60; //去掉小时的秒数
var m = parseInt(s / 60); //分钟
s %= 60;
var time = d + '天' + h + '小时' + m + '分钟' + s + '秒';
return time;
}
- 获取当前时间:
//获取当前时间:getTime
//返回值:eg:2017年4月9日星期日 17:55:20
function getTime(obj) {
function fnTime() {
var myTime = new Date(),
iYear = myTime.getFullYear(),
iMonth = myTime.getMonth() + 1,
iDate = myTime.getDate(),
iDay = myTime.getDay(),
iHours = myTime.getHours(),
iMinutes = myTime.getMinutes(),
iSeconds = myTime.getSeconds();
switch (iDay) {
case 0:
iDay = '星期日';
break;
case 1:
iDay = '星期一';
break;
case 2:
iDay = '星期二';
break;
case 3:
iDay = '星期三';
break;
case 4:
iDay = '星期四';
break;
case 5:
iDay = '星期五';
break;
case 6:
iDay = '星期六';
break;
}
var str = '';
str = iYear + '年' + iMonth + '月' + iDate + '日 ' + iDay + ' ' + addZero(iHours) + ':' + addZero(iMinutes) + ':' + addZero(iSeconds);
obj.innerHTML = str;
}
fnTime();
setInterval(fnTime, 1000);
}
- 设置样式:
//1.两个参数,如setStyle(oDiv,{width:'200px',height:'200px',...})
//2.三个参数,如setStyle(oDiv,'width','200px')
function setStyle() {
var obj = arguments[0]; //实参的第一个为obj
if (arguments.length == 2) { //如果实参数组长度为2
var json = arguments[1]; //实参的第二个为json
for (var name in json) {
obj.style[name] = json[name];
}
} else { //否则
//var name = arguments[1];
//var value = arguments[2];
obj.style[arguments[1]] = arguments[2]; //实参的第二个第三个参数分别为name,value
}
}
后续持续更新…