經常使用js函數封裝

see them...數組

// 獲取網址的get參數
var GET = function(name) {
  var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  var r = window.location.search.substr(1).match(reg);
  if (r != null) return (r[2]);
  return null;
}

 

// 13位時間戳轉日期
var getLocalTime = function(nS) {
  //return new Date(parseInt(nS)).toLocaleString().replace(/:\d{1,2}$/,' ');
  var date = new Date(nS);
  var Y = date.getFullYear() + '/';
  var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '/';
  var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
  var h = date.getHours() + ':';
  var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ' ';
  //var s = date.getSeconds();
  return Y + M + D + h + m;
}

 

// 數組對象排序  data.sort(keysrt("firstWord"));
var keysrt = function(propertyName) {
  return function(object1, object2) {
    var value1 = object1[propertyName];
    var value2 = object2[propertyName];
    if (value2 < value1) {
      return 1;
    } else if (value2 > value1) {
      return -1;
    } else {
      return 0;
    }
  }
}

 

// 判斷數據類型
function type(elem) {
  if (elem == null) {
    return elem + '';
  }
  return toString.call(elem).replace(/[\[\]]/g, '').split(' ')[1].toLowerCase();
}

 

// 判斷數組元素是否重複
isArrRepeat(arr) {
  var _arr = arr.sort();
  console.log(_arr)
  for (var i = 0; i < _arr.length; i++) {
    if (_arr[i] === _arr[i + 1]) {
      return true;
    }
  }
  return false;
}

 

截流防抖this

function throttle(fn ,wait) {
  let flag = false;
  return function() {
    if (flag) return;
    flag = true;
    setTimeout(() => {
      flag = false;
      fn.call(this, arguments);
    }, wait);
  }
}


function debounce(fn, wait) {
  let timer;
  return function() {
    if (timer) clearTimeout(timer);
    timer = setTimeout(() => {
      timer = null;
      fn.call(this, arguments);
    }, wait);
  }
}
相關文章
相關標籤/搜索