js 克隆數據 (數組的深淺拷貝)


var a1 = [1,2,3];

var a2 = a1;

a2[0] = 90;

console.log(a1[0]) //90

解析:數組是復合的數據類型,直接復制的話,只是復制了指向底層數據結構的指針,而不能克隆一個全新的數據;

上面的代碼中,a2並不是a1的克隆,而是指向同一分數據的另一個指針。修改a2,會直接導致a1的變化。

 

es5 可以同過下面的方法來克隆一個新的數組:

方法1:

var a1 = [1, 2, 3];
var a2 = a1.concat();
a2[0] = 90;
console.log(a1[0]) //1
方法2:
var a1 = [1, 2, 3];
var a2 = JSON.parse(JSON.stringify(a1));
a2[0] = 90;
console.log(a1[0]) //1
 
es6克隆一個新的數組的方法:
const a1 = [1,2,3];
寫法一:
const a2 = [...a1];
寫法2 :
const [...a2] = a1;
 
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM