如何实现深拷贝?

87 阅读1分钟
利用正则快速转换指定时间格式
[AppleScript]
纯文本查看
复制代码
1
2
3
// 20200303 => 2020-03-03
date = date.replace(/(.{4})/, "$1-");
date = date.replace(/(.{7})/, "$1-");

正则表达式校验输入百分比值
[AppleScript]
纯文本查看
复制代码
1
let reg = /^-?(100|(([1-9]\d|\d)(.\d{1,2})?))%$/

[AppleScript]
纯文本查看
复制代码
1
console.log(!reg.test(99.3))

iview tree 为指定节点设置展开不生效
// 问题
在变量 treeData的时候设置 extend = true
并没有生效,在打印treeData后发现并没有与extend相关的get set 方法。
所以导致无法展开。
复制代码// 结论
直接在数据中添加属性是无法生成get和set方法
// 解决
[AppleScript]
纯文本查看
复制代码
1
vue.$set(item, 'extend', true)

获取map数组的key值
[AppleScript]
纯文本查看
复制代码
1
2
3
4
5
6
getObjectKeys (object){
var keys = [];
for (var property in object)
return property;
},
}

如何实现深拷贝?
[AppleScript]
纯文本查看
复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
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 校验不能输入汉字
[AppleScript]
纯文本查看
复制代码
1
2
3
4
5
6
7
const checkData = (rule, value, callback) => {
if (/[\u4E00-\u9FA5]/g.test(value) || value === '') {
callback(new Error('只能数字英文和符合!'));
} else {
callback();
}
}


链接:https://juejin.cn/post/6844904153542557703