原生 JS 封装的一些方法 【更新中...】
发布日期:2021-05-07 18:31:14 浏览次数:10 分类:原创文章

本文共 4059 字,大约阅读时间需要 13 分钟。

/** * ----------- 使用说明 ---------------- * 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);    }}
上一篇:Vue基于Element-UI二次封装日期选择器和分页组件
下一篇:JS 数组的 every()、some() 、filter()、findIndex() 、find()、map()方法

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月19日 17时17分21秒