如何实现深拷贝?

简介: 如何实现深拷贝?

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

// 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();
    }
}
相关文章
|
7月前
|
JSON JavaScript 前端开发
怎么做深拷贝?
怎么做深拷贝?
【面试题精讲】深拷贝和浅拷贝区别了解吗?什么是引用拷贝?
【面试题精讲】深拷贝和浅拷贝区别了解吗?什么是引用拷贝?
|
7月前
|
存储 人工智能 前端开发
深拷贝浅拷贝的区别?如何实现一个深拷贝?
深拷贝浅拷贝的区别?如何实现一个深拷贝?
108 0
|
7月前
|
存储 JSON JavaScript
10分钟深入探讨带你彻底理解浅拷贝与深拷贝
在JavaScript中,对象的拷贝是一项常见的操作。浅拷贝和深拷贝是两种常用的拷贝方式。浅拷贝只复制对象的引用,而深拷贝创建了一个全新的对象,包含与原始对象相同的值和结构。深拷贝和浅拷贝各有适用的场景和注意事项。本文将详细介绍如何实现一个完整而优雅的深拷贝函数,处理循环引用和特殊类型,优化性能,并探讨深拷贝和浅拷贝的应用场景、注意事项和相关属性。
|
7月前
|
存储 Java Apache
【面试问题】深拷贝和浅拷贝的区别?
【1月更文挑战第27天】【面试问题】深拷贝和浅拷贝的区别?
|
人工智能 JavaScript 前端开发
为什么要用深浅拷贝、什么是深浅拷贝、以及如何实现
首先我们要明白一点,js中数据类型分为: 基本数据类型 (Number, String, Boolean, Null, Undefined, Symbol) 对象数据类型 ( Object )** 引用数据类型的值是保存在栈内存和堆内存中的对象。栈区内存保存变量标识符和指向堆内存中该对象的指针。当寻找引用值时,解释器会先寻找栈中的地址。然后根据地址找到堆内存的实体
113 0
为什么要用深浅拷贝、什么是深浅拷贝、以及如何实现
|
存储 JavaScript 前端开发
深拷贝浅拷贝有什么区别?怎么实现深拷贝?
深拷贝浅拷贝有什么区别?怎么实现深拷贝?
96 0
|
JSON 数据格式
深拷贝和浅拷贝、及实现方式
深拷贝和浅拷贝、及实现方式
97 0
|
存储 JSON 缓存
前端面试:浅拷贝和深拷贝的区别?
前端面试:浅拷贝和深拷贝的区别?
120 0
|
前端开发
前端学习案例10-深拷贝和浅拷贝
前端学习案例10-深拷贝和浅拷贝
73 0
前端学习案例10-深拷贝和浅拷贝