摘要:取當前數值的反碼表示再次取反,也就是得到當前自身說明,中的位運算會將數值自動轉換為整數二轉換成再轉換成對象實現對象的深拷貝三擴展運算符實現對象的深拷貝數組去重
數組的深拷貝:
一.for循環 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 } 二.slice 方法實現數組的深拷貝 var arr = [1,2,3,4,5] var arr2 = arr.slice(0) arr[2] = 5 console.log(arr) console.log(arr2) 三.concat 方法實現數組的深拷貝 var arr = [1,2,3,4,5] var arr2 = arr.concat() arr[2] = 5 console.log(arr) console.log(arr2) 四.ES6擴展運算符 var arr = [1,2,3,4,5] var [ ...arr2 ] = arr arr[2] = 5 console.log(arr) console.log(arr2)
對象的深度拷貝:
一.for循環 var obj = { name: "FungLeo", sex: "man", old: "18" } var obj2 = copyObj(obj) function copyObj(obj) { let res = {} for (var key in obj) { res[key] = obj[key] } return res } var copyObject = function(obj) { var result = {}; for (var x in obj) { result[x] = typeof obj === "object" ? copyObject(obj[x]) : obj[x] //如果拷貝的值仍然是一個對象,那么重復執行當前方法。 } return result; } ~~3.14 = > 3; // ~~ 取整。~取當前數值的反碼,~~表示再次取反,也就是得到當前自身(說明,JS中的“位”運算會將數值自動轉換為整數) 二.轉換成json再轉換成對象實現對象的深拷貝 var obj = { name: "FungLeo", sex: "man", old: "18" } var obj2 = JSON.parse(JSON.stringify(obj)) 三.擴展運算符實現對象的深拷貝 var obj = { name: "FungLeo", sex: "man", old: "18" } var { ...obj2 } = obj obj.old = "22" console.log(obj) console.log(obj2)
數組去重:
function dedupe(array) { return [...new Set(array)] } var arr = [1,2,2,3,3,4,4,5,5] console.log(dedupe(arr))
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/92051.html
摘要:一篇文章徹底說清的深拷貝淺拷貝這篇文章的受眾第一類業務需要急需知道如何深拷貝對象的開發者。這篇文章分享的目的更多還是希望用一篇文章整理清楚深淺拷貝的含義遞歸實現思路以及小伙伴們如果使用了這種黑科技一定要清楚這樣寫的優缺點。 一篇文章徹底說清JS的深拷貝and淺拷貝 這篇文章的受眾 第一類,業務需要,急需知道如何深拷貝JS對象的開發者。 第二類,希望扎實JS基礎,將來好去面試官前秀操作...
摘要:一篇文章徹底說清的深拷貝淺拷貝這篇文章的受眾第一類業務需要急需知道如何深拷貝對象的開發者。這篇文章分享的目的更多還是希望用一篇文章整理清楚深淺拷貝的含義遞歸實現思路以及小伙伴們如果使用了這種黑科技一定要清楚這樣寫的優缺點。 一篇文章徹底說清JS的深拷貝and淺拷貝 這篇文章的受眾 第一類,業務需要,急需知道如何深拷貝JS對象的開發者。 第二類,希望扎實JS基礎,將來好去面試官前秀操作...
摘要:一篇文章徹底說清的深拷貝淺拷貝這篇文章的受眾第一類業務需要急需知道如何深拷貝對象的開發者。這篇文章分享的目的更多還是希望用一篇文章整理清楚深淺拷貝的含義遞歸實現思路以及小伙伴們如果使用了這種黑科技一定要清楚這樣寫的優缺點。 一篇文章徹底說清JS的深拷貝and淺拷貝 這篇文章的受眾 第一類,業務需要,急需知道如何深拷貝JS對象的開發者。 第二類,希望扎實JS基礎,將來好去面試官前秀操作...
摘要:中有三種類型的對象拷貝淺拷貝深拷貝延遲拷貝。深拷貝相比于淺拷貝速度較慢并且花銷較大。意思是如果對象引用任何時候都不會被改變,那么沒必要使用深拷貝,只需要使用淺拷貝就行了。 目錄介紹 01.對象拷貝有哪些 02.理解淺拷貝 2.1 什么是淺拷貝 2.2 實現淺拷貝案例 03.理解深拷貝 3.1 什么是深拷貝 3.2 實現深拷貝案例 04.序列化進行拷貝 4.1 序列...
摘要:淺拷貝與深拷貝一數據類型數據分為基本數據類型,和對象數據類型。淺拷貝是按位拷貝對象,它會創建一個新對象,這個對象有著原始對象屬性值的一份精確拷貝。對于字符串數字及布爾值來說不是或者對象,會拷貝這些值到新的數組里。 淺拷貝與深拷貝 一、數據類型數據分為基本數據類型(String, Number, Boolean, Null, Undefined,Symbol)和對象數據類型。 基本數據類...
閱讀 3215·2021-11-19 09:40
閱讀 3011·2021-09-09 09:32
閱讀 799·2021-09-02 09:55
閱讀 1401·2019-08-26 13:23
閱讀 2414·2019-08-26 11:46
閱讀 1237·2019-08-26 10:19
閱讀 2065·2019-08-23 16:53
閱讀 1078·2019-08-23 12:44