背景

在日常开发中,咱们常常会用一些工具类办法来实现业务逻辑 上面列举几种最罕用的

URL截取参数

//间接调用输出想要截取的参数名称几个export function getParamFromUrl(key) {    if (key === undefined) return null;    let search = location.search.substr(1);    let mReg = new RegExp('(^|&)' + key + '=([^&]*)(&|$)');    let mValue = search.match(mReg);    if (mValue != null) return unescape(mValue[2]);    return null;}//示例let city = getParamFromUrl('city');

JSON是否为空判断

//输出想要检测的json数据 如果为空返回返回falseexport function isNullObject(model) {  if (typeof model === "object") {    let hasProp = false;    for (const prop in model) {        hasProp = true;        break;    }    if (hasProp) {        return false;    }    return true;  } else {      throw "model is not object";  }}

数据类型检测

//检测变量的数据类型export function getParamType(item) {    if (item === null) return null;    if (item === undefined) return undefined;    return Object.prototype.toString.call(item).slice(8, -1);}//返回String Function Boolean Object Number

获取cookie

//获取document下cookie的具体某个参数值export function getCookie(key) {    if (key === undefined) {        return undefined;    }    let cookies = document.cookie;    let mReg = new RegExp('(^|;)\\s*' + key + '=([^;]*)(;|$)');    let mValue = cookies.match(mReg);    let ret = undefined;    if (mValue != null) {        ret = unescape(mValue[2]);    }    if (ret !== undefined) {        ret = ret.replace(/^\"|\'/i, '').replace(/\"|\'$/i, '');    }    return ret;}

版本号比照

个别在做APP端开发的时候须要用到一些版本控制,那么就须要针对版本号来进行比照,高版本或者低版本做一些非凡的逻辑解决,上面就是提供版本比照的办法

//传入要比照的版本号,个别后面一个传入以后的版本号,前面一个写上要比照的版本号export function versionCompare(higher, lower) {    let sep = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : '.';    let higherAry = higher.split(sep),        lowerAry = lower.split(sep);    let l = Math.max(higherAry.length, lowerAry.length);    for (let i = 0; i < l; i++) {        let high = parseInt(higherAry[i] || 0);        let low = parseInt(lowerAry[i] || 0);        if (high > low) {            return 1;        }        if (high < low) {            return -1;        }    }    return 0;}//返回值  higher > lower: 1;higher = lower: 0;higher < lower:-1

数组去重

export function arrayUniq(array){    let temp = [];     for(var i = 0; i < array.length; i++){        if(temp.indexOf(array[i]) == -1){            temp.push(array[i]);        }    }    return temp;}

iPhone X系列机型判断

export function isIphoneX() {    // iPhone X、iPhone XS    var isIPhoneX =        /iphone/gi.test(window.navigator.userAgent) &&        window.devicePixelRatio &&        window.devicePixelRatio === 3 &&        window.screen.width === 375 &&        window.screen.height === 812;    // iPhone XS Max    var isIPhoneXSMax =        /iphone/gi.test(window.navigator.userAgent) &&        window.devicePixelRatio &&        window.devicePixelRatio === 3 &&        window.screen.width === 414 &&        window.screen.height === 896;    // iPhone XR    var isIPhoneXR =        /iphone/gi.test(window.navigator.userAgent) &&        window.devicePixelRatio &&        window.devicePixelRatio === 2 &&        window.screen.width === 414 &&        window.screen.height === 896;    if (isIPhoneX || isIPhoneXSMax || isIPhoneXR) {        return true;    }    return false;}