原生 JS 封装的一些方法 【更新中...】

/**
 * ----------- 使用说明 ----------------
 * getNowDate: 获取当前日期 和 时间
 * getDynamicDate: 获取动态日期 和 时间
 * unique: 数组去重 ES6
 * unique_: 数组去重 ES5
 * toFormat: 实现数字千分位
 * deepCopy: 深拷贝
 * getDataType: 获取数据类型
 * getDeviceType: 获取当前设备类型
 * ascArray: 数组 升序
 * desArray: 打乱 数组
 * upsetArray: 获取数组中的 最大值
 * maxArrayVal: 获取数组中的 最小值
 * minArrayVal: 获取数组中的 最小值
 * ------------------------------------
 */
const COMMON = {
    
    
    /**
     * 获取当前设备类型
     * @returns 返回一个 String
     */
    getDeviceType: function() {
    
    
      var deviceType = 'WEB' //其他
      var u = navigator.userAgent
      var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1 
      var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/) 
      if (isAndroid) {
    
    
        deviceType = 'Android'
      } else if (isiOS) {
    
    
        deviceType = 'IOS'
      }
      return deviceType;
    },
    /**
     * 数组 升序
     * @param { Array } arr 数组
     * @returns 
     */
    ascArray: function(arr) {
    
    
      var arr = arr || [];
      arr.sort(function(a,b) {
    
    
        return a - b;
      })
      return arr;
    },
    /**
     * 数组 降序
     * @param { Array } arr 数组
     * @returns 
     */
    desArray: function(arr) {
    
    
      var arr = arr || [];
      arr.sort(function(a,b) {
    
    
        return b - a;
      })
      return arr;
    },
    /**
     * 打乱 数组
     * @param { Array } arr 数组
     * @returns 打乱后的数组
     */
    upsetArray: function(arr) {
    
    
      var arr = arr || [];
      arr.sort(function(a,b) {
    
    
        return Math.random() - 0.5;
      })
      return arr;
    },
    /**
     * 获取数组中的 最大值
     * @param { Array } arr 数组 
     * @returns 返回一个 数组里最大的 元素 Number
     */
    maxArrayVal: function(arr) {
    
    
      return Math.max.apply(null, arr);
    },
      /**
     * 获取数组中的 最小值
     * @param { Array } arr 数组 
     * @returns 返回一个 数组里最大的 元素 Number
     */
    minArrayVal: function(arr) {
    
    
      return Math.min.apply(null, arr);
    },
    /**
     * 获取动态日期 和 时间
     * @param { String } param 是一个 id 名称
     */
    getDynamicDate: function(param) {
    
    
      let obj = document.getElementById(param);
      setInterval(() => {
    
    
        obj.innerHTML = COMMON.getNowDate()
      }, 1000);
    },
    /**
     * 获取当前日期 和 时间
     * @returns 返回一个字符串 2021-03-10 23:44:38
     */
    getNowDate: function() {
    
    
        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;
    },
    /**
     * 数组去重 ES6
     * @param { Array } 数组类型
     * @returns 返回一个去重后的新数组
     */
    unique: function(arr) {
    
    
        return [...new Set(arr)];
    },
    /**
     * 数组去重 ES5
     * @param { Array } 数组类型
     * @returns 返回一个去重后的新数组
     */
    unique_: function(arr) {
    
    
        if (Array.isArray(arr)) {
    
    
            return arr.filter((item, index, array) => array.indexOf(item) === index);
        }
    },
    /**
     * 实现数字千分位
     * @param { Number } 10000000
     * @returns 返回一个字符串 10,000,000
     */
    toFormat: function(num) {
    
    
      num = Number(num);
      return num.toLocaleString();
    },
    /**
     * 深拷贝
     * @param { Object } params 
     * @returns Object
     */
    deepCopy: function(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;
    },
    /**
     * 获取数据类型
     * @returns 数据类型
     */
    getDataType: function(params) {
    
    
      return Object.prototype.toString.call(params).slice(8, -1);
    },
    /**
     * 判断当前浏览器是否是IE浏览器
     * @returns 返回一个 Boolean
     * true: 表示是IE浏览器
     * false: 表示不是IE浏览器
     */
    isIE: function() {
    
    
    	let flag = !!window.ActiveXObject || "ActiveXObject" in window
    	if (flag) {
    
    
    		return true;
    	}else {
    
    
    		return false;
    	}
    }
    
}

猜你喜欢

转载自blog.csdn.net/m0_49045925/article/details/114683298