用JSON.parse实现深克隆

用JSON.parse实现深克隆

<!DOCTYPE html>

<html lang="en">


<head>

<meta charset="UTF-8">

<meta http-equiv="X-UA-Compatible" content="IE=edge">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

<style>


</style>

</head>


<body>

<script>

// let arr = [4, [5, 6, [7, 8]]]

// const deepCopy = (arr) => {

//     let result = [];

//     for (let i = 0; i < arr.length; i++) {

//         (Array.isArray(arr[i]))

//             ? result.push(deepCopy(arr[i]))

//             : result.push(arr[i])

//     }

//     return result

// }

// let arr1 = deepCopy(arr)

// console.log(arr1 === arr);

// console.log(arr[1][2] === arr1[1][2]);

// console.log(arr[1] === arr1[1]);



let obj = {

a: 1,

b: 2,

c: [4, 5, {

d: 6,

e: [3, () => { }, true, NaN, 'fales', {

f: NaN

}]

}]

}

const deepClone = o => JSON.parse(JSON.stringify(o));

let obj2 = deepClone(obj)

console.log(obj2);

console.log(obj2 === obj);

console.log(obj2.c === obj.c);



// const deepClone = (o) => {

//     if (Array.isArray(o)) {

//         var result = [];

//         for (var i = 0; i < o.length; i++) {

//             result.push(deepClone(o[i]))

//         }

//     } else if (typeof o === 'object') {

//         var result = {};

//         for (let k in o) {

//             result[k] = deepClone(o[k])

//         }

//     } else {

//         var result = o;

//     }

//     return result

// }

// let obj1 = deepClone(obj);

// console.log(obj1);

// console.log(obj.c === obj1.c);





</script>


</body>


</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕星星 2022-05-21 17:54:47

同学你好,JSON.parse()实现深克隆没问题。祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师