日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

javascript 数组以及对象的深拷贝方法

發布時間:2025/3/21 javascript 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 javascript 数组以及对象的深拷贝方法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

for循環

var arr = [{name: 'jq',old: '20' },{name: 'aa',old: '18' }] var arr2=[] for(let i=0;i<arr.length;i++){arr2.push({...arr[i]}) } arr[0].name='xiaoming' console.log(arr) //[{name: "xiaoming", old: "20"},{name: "aa", old: "18"}] console.log(arr2) //[{name: "jq", old: "20"},{name: "aa", old: "18"}] var obj = {name: 'jq',old: '20' } var obj2 = copyObj(obj) function copyObj(obj) {let res = {}for (var key in obj) {res[key] = obj[key]}return res } obj.name='aa' console.log(obj) //{name: "aa", age: "20"} console.log(obj2)//{name: "jq", age: "20"}

arr.concat()返回一個新數組

var arr = [1,2,3,4] var newarr = arr.concat(); arr[1]=5; console.log(arr); //[1,2,3,4] console.log(arr2);//[1,5,3,4]

slice 方法 從已有的數組中返回選定的元素。

語法:slice(begin,end) 方法選擇一個從開始到結束(不包括結束)的數組的一部分淺拷貝到一個新的數組對象,方法不會改變原數組。如果是對象則拷貝對象的引用到新數組,如果是基本類型則會拷貝這些值到新數組。

如果省略begin則會從0開始。如果end被省略則會抽取到最后一個元素,如果end數值大于數組長度則會抽取到最后一個元素

var arr = [1,2,3,4] var arr2 = arr.slice() arr[2] = 5 console.log(arr) //[1, 2, 5, 4] console.log(arr2)// [1, 2, 3, 4]

轉換成json字符串再轉成json對象

var obj = {name: 'jq',age: '20' } var obj2 = JSON.parse(JSON.stringify(obj)) obj.name='aa' console.log(obj) //{name: "aa", age: "20"} console.log(obj2)//{name: "jq", age: "20"}

ES6擴展運算符

var arr = [1,2,3,4] var [ ...arr2 ] = arr arr[2] = 5 console.log(arr) //[1, 2, 5, 4] console.log(arr2)//[1, 2, 3, 4] var obj = {name: 'jq',age: '20' } var {...obj2}=obj; obj.name='aa' console.log(obj) //{name: "aa", age: "20"} console.log(obj2)//{name: "jq", age: "20"}

Object.assign()

var obj={name:'jq',age:15} var obj2=Object.assign({},obj) obj.name='aa' console.log(obj) //{name: "aa", age: "15"} console.log(obj2)//{name: "jq", age: "15"}

總結

以上是生活随笔為你收集整理的javascript 数组以及对象的深拷贝方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。