如何实现深拷贝?

纵饮孤独 提交于 2020-08-10 06:34:27

利用正则快速转换指定时间格式

// 20200303 => 2020-03-03
date = date.replace(/(.{4})/, "$1-");
date = date.replace(/(.{7})/, "$1-");
复制代码

正则表达式校验输入百分比值

let reg = /^-?(100|(([1-9]\d|\d)(.\d{1,2})?))%$/
复制代码

console.log(!reg.test(99.3)) 复制代码

iview tree 为指定节点设置展开不生效

// 问题
在变量 treeData的时候设置 extend = true
并没有生效,在打印treeData后发现并没有与extend相关的get set 方法。
所以导致无法展开。
复制代码

// 结论 直接在数据中添加属性是无法生成get和set方法 // 解决 vue.$set(item, 'extend', true) 复制代码

获取map数组的key值

getObjectKeys (object){
    var keys = [];
    for (var property in object)
      return property;
    },
}
复制代码

如何实现深拷贝?

function deep(origin, target) {
    var target = target || {};
    for (var prop in origin) {
        if (origin.hasOwnProperty(prop)) {
            if (typeof origin[prop] == 'object' && typeof origin[prop] !== null) {
                if (origin[prop] instanceof Array) {
                    target[prop] = [];
                    deep(origin[prop], target[prop]);//递归调用deep
                }
                if (origin[prop] instanceof Object) {
                    target[prop] = {};
                    deep(origin[prop], target[prop]);//递归调用deep
                }
            } else if (typeof origin[prop] == 'number' || typeof origin[prop] == 'string' || typeof origin[prop] == 'boolean') {
                target[prop] = origin[prop];
            }
        }
    }
    return target;
}
复制代码

vue rules 校验不能输入汉字

const checkData =  (rule, value, callback) => {
    if (/[\u4E00-\u9FA5]/g.test(value) || value === '') {
      callback(new Error('只能数字英文和符合!'));
    } else {
      callback();
    }
}
复制代码
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!