Skip to content

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

Description

@junhey
  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;
    }
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions