国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

JS 數組和對象的深拷貝操作示例

瀏覽:164日期:2024-05-05 08:08:50

本文實例講述了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}

感興趣的朋友可以使用在線HTML/CSS/JavaScript代碼運行工具:http://tools.jb51.net/code/HtmlJsRun測試上述代碼運行效果。

更多關于JavaScript相關內容感興趣的讀者可查看本站專題:《javascript面向對象入門教程》、《JavaScript錯誤與調試技巧總結》、《JavaScript數據結構與算法技巧總結》、《JavaScript遍歷算法與技巧總結》及《JavaScript數學運算用法總結》

希望本文所述對大家JavaScript程序設計有所幫助。

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 自贡市| 威宁| 义乌市| 齐河县| 申扎县| 长垣县| 敦化市| 屯门区| 闵行区| 五原县| 文昌市| 宁德市| 外汇| 鄂州市| 镇赉县| 小金县| 峨边| 阳原县| 潞城市| 石首市| 浏阳市| 黄浦区| 玉龙| 东乌珠穆沁旗| 兴隆县| 钟山县| 苍南县| 麻城市| 潜江市| 怀远县| 铁岭市| 桂平市| 蒲城县| 利川市| 余江县| 隆尧县| 平武县| 甘南县| 盘锦市| 廊坊市| 历史|