递归函数
// 深拷贝
const deepCopy = data => {
// 如果不是引用数据类型 直接返回值
if (!(typeof data === 'object')) {
return data;
}
// 如果是的话
if (Array.isArray(data)) {
// 是数组
let newArr = [];
data.forEach(item => {
// 递归
let newData = deepCopy(item);
newArr.push(newData);
})
return newArr;
} else {
// 是对象
let newData = {};
for (let x in data) {
// 递归
let newVal = deepCopy(data[x])
newData[x] = newVal;
}
return newData;
}
}
static deepCopy = data => JSON.parse(JSON.stringify(data))
本文介绍了一种通过递归函数实现的深拷贝方法,并对比了利用JSON.parse和JSON.stringify的简单实现方式。该方法适用于JavaScript中复杂数据结构的复制场景。
4572

被折叠的 条评论
为什么被折叠?



