文章詳情頁
javascript - 數組賦值問題
瀏覽:204日期:2023-04-08 13:25:25
問題描述
為什么把arr的值賦值arrnew,為什么arr改變arrnew也會跟著改變?如果希望arrnew得到arr的數據后,不跟著arr后面的操作要怎么寫?let arr=[1,2,3,4,5]let arrnew=arrarr=arr.sort((a,b)=>{return b-a})console.log(arr)//[5, 4, 3, 2, 1]console.log(arrnew)//[5, 4, 3, 2, 1]
問題解答
回答1:數組也是屬于對象,屬于引用類型,當進行賦值時,賦值的是地址,并不會克隆一個新對象進行賦值。
sort會改變原數組
綜上兩點,改變arr自然會改變arrnew
回答2:let arrnew = arr.slice()
回答3:這篇文章對你有很大幫助!click me
回答4:你對arrnew的賦值只是地址的引用。
如果要復制數組,可以使用擴展運算符,如下:
let arrnew = [...arr];
標簽:
JavaScript
相關文章:
1. mac連接阿里云docker集群,已經卡了2天了,求問?2. debian - docker依賴的aufs-tools源碼哪里可以找到啊?3. 百度地圖api - Android 百度地圖 集成了定位,導航 相互的jar包有沖突?4. vim - docker中新的ubuntu12.04鏡像,運行vi提示,找不到命名.5. docker-compose 為何找不到配置文件?6. docker網絡端口映射,沒有方便點的操作方法么?7. 為什么我ping不通我的docker容器呢???8. golang - 用IDE看docker源碼時的小問題9. html5和Flash對抗是什么情況?10. docker images顯示的鏡像過多,狗眼被亮瞎了,怎么辦?
排行榜

網公網安備