美文网首页
utils常用工具类

utils常用工具类

作者: 奇怪的双子座 | 来源:发表于2019-01-08 18:19 被阅读0次

    /**

    * @description参数是否是其中之一

    * @param {*string} value

    * @param {*array} validList

    * @returns {*boolean}

    */

    export function oneOf(value, validList) {

      for (let i = 0; i < validList.length; i++) {

        if (value == validList[i]) {

          return true;

        }

      }

      return false;

    }

    /**

    *@description 文件大小进行格式化,

    * @param {*文件大小 B} filesize

    * @returns {*文件大小格式化} 如果小于1kb返回<1KB,如果小于1M,向下取整,返回整数KB,如果大于1M返回两位小数,类似1.31M

    */

    export function FormatSize(fileSize) {

      if (fileSize < 1024) {

        return "<1KB";

      } else {

        var arrUnit = ["B", "KB", "M", "G", "T", "P"];

        var powerIndex = Math.log2(fileSize) / 10;

        powerIndex = Math.floor(powerIndex);

        // index should in the unit range!

        var len = arrUnit.length;

        powerIndex = powerIndex < len ? powerIndex : len - 1;

        var sizeFormatted = fileSize / Math.pow(2, powerIndex * 10);

        if (powerIndex == "1") {

          sizeFormatted = Math.floor(sizeFormatted);

        } else {

          sizeFormatted = sizeFormatted.toFixed(2);

        }

        return sizeFormatted + " " + arrUnit[powerIndex];

      }

    }

    /**

    * js数组排序 支持数字和字符串

    * @param params

    * @param arrObj  obj    必填  数组对象

    * @param keyName  string  必填  要排序的属性名称

    * @param type    int    选填  默认type:0 正顺  type:1反顺

    * @description

    *  使用示例:

          var temp = [

            {"name":"zjf","score":50,"age":10},

            {"name":"lyy","score":90,"age":5},

            {"name":"zzx","score":90,"age":12}

          ];

          //根据age排序

          var temp1 = arrItemSort(temp,"age",1);

    */

    export function arrItemSort(arrObj, keyName, type = 0, isDate = 0) {

      //这里如果 直接等于arrObj,相当于只是对对象的引用,改变排序会同时影响原有对象的排序,而通过arrObj.slice(0),

      //表示把对象复制给另一个对象,两者间互不影响

      if (!arrObj) {

        return [];

      }

      var tempArrObj = arrObj.slice(0);

      var compare = function(keyName, type) {

        return function(obj1, obj2) {

          var val1 = obj1[keyName];

          var val2 = obj2[keyName];

          if (isDate) {

            val1 = new Date(obj1[keyName]).getTime();

            val2 = new Date(obj2[keyName]).getTime();

            console.log(val1, val2);

          }

          if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {

            val1 = Number(val1);

            val2 = Number(val2);

          }

          //如果值为空的,放在最后

          if (val1 == null && val2 == null) {

            return 0;

          } else if (val1 == null && val2 != null) {

            return type == 1 ? -1 : 1;

          } else if (val2 == null && val1 != null) {

            return type == 1 ? 1 : -1;

          }

          //排序

          if (val1 < val2) {

            return type == 1 ? 1 : -1;

          } else if (val1 > val2) {

            return type == 1 ? -1 : 1;

          } else {

            return 0;

          }

        };

      };

      return tempArrObj.sort(compare(keyName, type));

    }

    //文件类型整合

    export function getFileType(fileType) {

        //    let filecolor = "rgb(91, 174, 246)";

        let initfileType = new String(fileType);

        if (initfileType.length > 1) {

          initfileType =

            initfileType.substr(0, 1).toUpperCase() + initfileType.substr(1);

        } else {

          initfileType = initfileType.toUpperCase();

        }

        let audioArr = [

          "wav",

          "mp3",

          "au",

          "aif",

          "aiff",

          "ram",

          "wma",

          "mmf",

          "amr",

          "aac",

          "flac"

        ];

        let radioArr = [

          "avi",

          "mov",

          "asf",

          "wmv",

          "navi",

          "3gp",

          "ra",

          "ram",

          "mkv",

          "flv",

          "f4v",

          "rmvb",

          "webm",

          "mp4"

        ];

        let imageArr = [

          "jpg",

          "png",

          "jpeg",

          "bmp",

          "pcx",

          "tif",

          "tga",

          "exif",

          "fpx",

          "svg",

          "cdr",

          "pcd",

          "dxf",

          "ufo",

          "esp",

          "ai",

          "hdri",

          "raw",

          "wmf",

          "flic",

          "emp",

          "ico"

        ];

        let excelArr = ["xlsx"];

        let wordArr = ["doc", "docx"];

        let nomalArr = ["pdf", "ppt", "rar", "psd", "txt", "zip", "word"];

        if (oneOf(fileType, audioArr)) {

          fileType = "audio";

        } else if (oneOf(fileType, radioArr)) {

          fileType = "radio";

        } else if (oneOf(fileType, excelArr)) {

          fileType = "excel";

        } else if (oneOf(fileType, wordArr)) {

          fileType = "word";

        } else if (oneOf(fileType, imageArr)) {

          fileType = "image";

        } else if (oneOf(fileType, nomalArr)) {

        } else {

          fileType = "others";

        }

      }

    相关文章

      网友评论

          本文标题:utils常用工具类

          本文链接:https://www.haomeiwen.com/subject/zlmbrqtx.html