用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积分~
来为老师/同学的回答评分吧
0 星