示例JS 数组和对象的深拷贝操作
生活随笔
收集整理的這篇文章主要介紹了
示例JS 数组和对象的深拷贝操作
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
本文實例講述了JS 數組和對象的深拷貝操作。分享給大家供大家參考,具體如下:
一.數組的深拷貝
let arr = [
undefined,
function(){
console.log(123);
},
true,
null,
{
name:"123",
age:23
}
];
// arr作為拷貝對象
1. Array.from()
Array.from()能將一個類數組轉化成一個真正的數組,因此它返回的是一個新數組。
let arr1 = Array.from(arr);
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
2. Object.assign()
let arr1 = Object.assign([], arr)
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
此方法也可用作對象的深拷貝
3. Slice()
let arr1 = arr.slice(0);
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
4. Concat()
let arr1 = arr.concat();
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
5. 擴展運算符深拷貝
// let [...arr1] = arr; // 這兩種都可以
let arr1 = [...arr];
arr[0] = 2;
console.log(arr1);
// [ undefined, [Function], true, null, { name: '123', age: 23 } ]
此方法也可用作對象的深拷貝
二.對象的深拷貝
let obj = {
name: "a",
age: 20,
sex: false,
user: {
a: 20,
n: "b"
},
f: function(){
return 1;
},
u: undefined,
n: null
}
用擴展運算符和Object.assign()方法可以深拷貝對象
let obj1 = Object.assign({}, obj)
obj[age] = 2;
console.log(obj1);
// let obj = { name: "a", age: 20, sex: false,user: {a: 20,n: "b},f: function(){return 1;},u: undefined,n: null}
相關學習推薦:javascript視頻教程
總結
以上是生活随笔為你收集整理的示例JS 数组和对象的深拷贝操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【黄山seo】有必要的SEO技巧有哪几个
- 下一篇: 如何利用Calendar类判断平年闰年