美文网首页
js常用函数

js常用函数

作者: Jey | 来源:发表于2020-11-12 14:23 被阅读0次
    js替换字符串
    // str原字符串,reStr需要替换的字符串,toStr替换成的字符串
    function(str, reStr, toStr) {
        let s = new RegExp(reStr,'g')
        return str.replace(s, toStr);
    }
    
    js热更新对比版本号
    function compareVersion(curV, newV) {
        let curVArr = curV.toString().split('.')
        let newVArr = newV.toString().split('.')
        let minLength = Math.min(curVArr.length, newVArr.length)
        let pos = 0 // 每一个.分开的位置
        let diff = 0
        let hasNewVersion = false;
        while (pos < minLength) {
            diff = parseInt(newVArr[pos]) - parseInt(curVArr[pos])
            if (diff != 0) {
                hasNewVersion = diff > 0? true: false
                break;
            }
            pos++
        }
        // 1.0.3 与1.0.3.4的情况
        if (diff === 0 && curVArr.length < newVArr.length) {
            hasNewVersion = true;
        }
        return hasNewVersion;
    }
    
    深拷贝
    function deepCopy(obj) {
        var result, oClass = getClass(obj);
    
        if (oClass == "Object") result = {}; //判断传入的如果是对象,继续遍历
        else if (oClass == "Array") result = []; //判断传入的如果是数组,继续遍历
        else return obj; //如果是基本数据类型就直接返回
    
        for (var i in obj) {
            var copy = obj[i];
            if (getClass(copy) == "Object") result[i] = util.deepCopy(copy); //递归方法 ,如果对象继续变量obj[i],下一级还是对象,就obj[i][i]
            else if (getClass(copy) == "Array") result[i] = util.deepCopy(copy); //递归方法 ,如果对象继续数组obj[i],下一级还是数组,就obj[i][i]
            else result[i] = copy; //基本数据类型则赋值给属性
        }
    
        return result;
    }
    

    相关文章

      网友评论

          本文标题:js常用函数

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