js 封裝經常使用方法

1. 獲取數據類型es6

    function getType(params) {
      return Object.prototype.toString.call(params).slice(8, -1)
    }

2. 深拷貝數組

    function deepCopy(params) {
      var obj;
      if (typeof params === 'object') {
        if (Array.isArray(params)) {
          obj = [];
          for (var i = 0; i < params.length; i++) {
            obj.push(arguments.callee(params[i]))
          }
        } else {
          obj = {};
          for (var c in params) {
            obj[c] = arguments.callee(params[c]);
          }
        }
      } else { return params; }
      return obj;
    }

3. 實現數字千分位url

1)toLocaleStringes5

    function toFormat(num) {
      num = Number(num);
      return num.toLocaleString();
    }

2)正則spa

    function toFormat(num) {
      num = num.toString();
      var t = /\B(?=(\d{3})+(?!\d))/g;
      if (!!~num.indexOf('.')) {
        var arr = num.split('.');
        return (arr[0] || '').replace(t, ',') + '.' + arr[1];
      }
      return num.replace(t, ',')
    }

4. 查詢url後面參數prototype

1)循環code

    function getParamsName(attr) {
      var url = location.href; // 'baidu.com?name=黎明&age=18&habit=basketball'
      var params = url.split('?')[1];
      var paramsObj = {};
      if (params) {
        var paramsList = params.split('&') || [];
        for (var i = 0; i < paramsList.length; i++) {
          var item = paramsList[i].split('=') || [];
          paramsObj[item[0]] = item[1];
        }
      }
      return decodeURIComponent(paramsObj[attr]);
    }

2)正則orm

    function getParamsName(attr) {
      let match = RegExp(`[?&]${attr}=([^&]*)`).exec(window.location.search)
      return match && decodeURIComponent(match[1])
    }

5. 獲取當前時間blog

    function getDate() {
      var date = new Date();
      var year = date.getFullYear(),
        month = date.getMonth() + 1,
        day = date.getDate(),
        hour = date.getHours(),
        minute = date.getMinutes(),
        second = date.getSeconds();

      var fill = function (num) {
        num = num.toString();
        return num.padStart(2, '0') // 爲個位數時 補充前面的零
      }

      var currentdate = year + '-' + fill(month) + '-' + fill(day) + ' ' + fill(hour) + ':' + fill(minute) + ':' + fill(second);
      return currentdate;
    }

6. 數組去重字符串

1) es5

    function uniq(arr) {
      if (Array.isArray(arr)) {
        return arr.filter((item, index, array) => array.indexOf(item) === index);
      }
    }

2)es6

    function uniq(arr) {
      return [...new Set(arr)]
    }

7. 計算字符串出現次數最多的字母

    function count(str) {
      var obj = {}, max = { key: '', val: 1 };
      for (var i = 0; i < str.length; i++) {
        var item = str[i];
        !obj[item] ? obj[item] = 1 : obj[item]++;
        if (obj[item] > max.val) {
          max.val = obj[item];
          max.key = item;
        }
      }
      return max;
    }

未完待續...

相關文章
相關標籤/搜索