一、先认识什么是相等或者不等
定义是:我们要二个变量、初始值相等的话,就要通深拷贝
//如果需要两个变量,如果他们的初始值相同那么
let arr = [1,2,3,4,[5,6]] //j
let list = [...arr] //l
console.log(list)
console.log(arr)
console.log(arr === list)
console.log(arr[1]===list[1])
第一种方法 JSON.stringify 、JSON.parse
let list1 = JSON.stringify(list)
// console.log(list1)
let list2 = JSON.parse(list1)
console.log(list2)
arr[4][0] = 6
console.log(arr)
// console.log(list1)
方法二、手写深拷贝利用递归的方式
function clong(obj={}){
//判断 obj不等于对象或者等于空直接返回
if(typeof obj !=='object' || obj ==null){
return obj
}
var h
//判断用instanceof 判断obj如果是对象的话就返回一个对象
if(obj instanceof Array){
h = []
}else{
h ={}
}
for(var key in obj){
//判断不是原型是数据
if(obj.hasOwnProperty(key)){
h[key]=clong(obj[key])
}
}
return h
}
let a =[1,2,3,[5,6]]
console.log(a)
let b = clong(a)
console.log(b)