studyNotes icon indicating copy to clipboard operation
studyNotes copied to clipboard

记录了一些工作中常用到的js代码

Open junhey opened this issue 7 years ago • 0 comments

  1. 生成指定范围内的随机数

例如随机获取颜色rgba的参数值时

function setRandomNum(m,n){

  return Math.floor(Math.random()*(n-m+1)) + m;

}
  1. json转url参数

当进行http请求,可能需要把json转化为url参数

function json2url(json) {
    var arr = [];
    for(var name in json) {
        arr.push(name+'='+json[name])
    }
    return arr.join('&')
}
  1. 验证是否为数组
function isArray(obj) {
    return Array.isArray(obj) || Object.prototype.toString().call(obj) === '[object Array]';
}
  1. 打乱数组的顺序

方式1:

arr.sort(function () {
    return Math.random() - 0.5
})

方式2:

function shuffle(arr) {
    var i,j,templ
    for(var i = arr.length - 1;i > 0;i--){
        j = Math.floor(Math.random() * (i + 1));
        temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }
    return arr;
}
  1. 去除字符串的空格
function trim(str) {
    return str.replace(/(^\s*)|(\s*$)/g,"");//去除首尾空格
}
function trim(str) {
    return str.replace(/(\s+)/g,"");//去除所有空格
}
  1. 获取数组中的最大值或最小值
function maxAndMin(arr) {
    return {
    max: Math.max.apply(null,arr.join(',').split(',')),
    min: Math.min.apply(null,arr.join(',').split(','))
  }
}
  1. Date日期时间部分
//到某一个时间的倒计时
//getEndTime('2017/7/22 16:0:0')
//"剩余时间6天 2小时 28 分钟20 秒"
function getEndTime(endTime){
    var startDate=new Date();  //开始时间,当前时间
    var endDate=new Date(endTime); //结束时间,需传入时间参数
    var t=endDate.getTime()-startDate.getTime();  //时间差的毫秒数
    var d=0,h=0,m=0,s=0;
    if(t>=0){
      d=Math.floor(t/1000/3600/24);
      h=Math.floor(t/1000/60/60%24);
      m=Math.floor(t/1000/60%60);
      s=Math.floor(t/1000%60);
    } 
    return "剩余时间"+d+"天 "+h+"小时 "+m+" 分钟"+s+" 秒";
}
  1. 去除字符串空格
//去除空格  type 1-所有空格  2-前后空格  3-前空格 4-后空格
function trim(str,type){
    switch (type){
        case 1:return str.replace(/\s+/g,"");
        case 2:return str.replace(/(^\s*)|(\s*$)/g, "");
        case 3:return str.replace(/(^\s*)/g, "");
        case 4:return str.replace(/(\s*$)/g, "");
        default:return str;
    }
}

junhey avatar Apr 30 '18 04:04 junhey