オブジェクトのディープコピー
- プロパティ値は、オブジェクトへのオブジェクト参照ではない場合
Object.assign
function (obj){
let newObj={}
for(var key in obj){
newObj[key]=obj[key]
}
return newObj;
}
2.オブジェクトがある場合でも、オブジェクトのプロパティとすることができます
function deepCopy(obj){
let newObj={}
for(var key in obj){
if(Object.prototype.toString.call(obj[key]) === "[object Object]"){
deepCopy(obj[key])
}else{
newObj[key]=obj[key]
}
return newObj
}
オブジェクトのディープコピー
- コピーサイクル
var arr = [1,2,3,4,5]
var arr2 = copyArr(arr)
function copyArr(arr) {
let res = []
for (let i = 0; i < arr.length; i++) {
res.push(arr[i])
}
return res
}
2.concat方法
var arr = [1,2,3,4,5]
var arr2 = arr.concat()
arr[2] = 5
console.log(arr)
console.log(arr2)