文章詳情頁
javascript - 數組賦值問題
瀏覽:59日期: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. mysql優化 - mysql count(id)查詢速度如何優化?2. angular.js - 不適用其他構建工具,怎么搭建angular1項目3. mysql主從 - 請教下mysql 主動-被動模式的雙主配置 和 主從配置在應用上有什么區別?4. python - django 里自定義的 login 方法,如何使用 login_required()5. 主從備份 - 跪求mysql 高可用主從方案6. java8中,邏輯與 & 符號用在接口類上代表什么意思7. python如何不改動文件的情況下修改文件的 修改日期8. angular.js - angular-ui-bootstrap 報錯無法使用?9. node.js - node_moduls太多了10. python - 關于ACK標志位的TCP端口掃描的疑惑?
排行榜
