為什么改了JS數組中的一個元素的值,其他數組元素值都跟着變了


原因:

  數組是引用類型,數組變量存儲在棧,元素數據存儲在堆中,將數組賦值不同的對象,所以的賦值對象都指向堆同一個數據,所以改變其中一個數組中的元素,別的數組元素也會改變。

解決方案:

  原理就是先把數組轉換成字符串再轉換成對象 ,這樣會新分配一塊內存,就不會指向同一個堆中的數據。

   例子1: var tmp = JSON.parse(JSON.stringify(array));


免責聲明!

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



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