文章詳情頁(yè)
javascript - 數(shù)組賦值問題
瀏覽:75日期:2023-04-08 13:25:25
問題描述
為什么把a(bǔ)rr的值賦值arrnew,為什么arr改變arrnew也會(huì)跟著改變?如果希望arrnew得到arr的數(shù)據(jù)后,不跟著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:數(shù)組也是屬于對(duì)象,屬于引用類型,當(dāng)進(jìn)行賦值時(shí),賦值的是地址,并不會(huì)克隆一個(gè)新對(duì)象進(jìn)行賦值。
sort會(huì)改變?cè)瓟?shù)組
綜上兩點(diǎn),改變arr自然會(huì)改變arrnew
回答2:let arrnew = arr.slice()
回答3:這篇文章對(duì)你有很大幫助!click me
回答4:你對(duì)arrnew的賦值只是地址的引用。
如果要復(fù)制數(shù)組,可以使用擴(kuò)展運(yùn)算符,如下:
let arrnew = [...arr];
標(biāo)簽:
JavaScript
相關(guān)文章:
1. atom開始輸入!然后按tab只有空格出現(xiàn)沒有html格式出現(xiàn)2. javascript - js setTimeout在雙重for循環(huán)中如何使用?3. javascript - vue-cli npm run build編譯報(bào)錯(cuò)4. mysql - 這種分級(jí)一對(duì)多,且分級(jí)不平衡的模型該怎么設(shè)計(jì)表?5. mac里的docker如何命令行開啟呢?6. javascript - 有適合開發(fā)手機(jī)端Html5網(wǎng)頁(yè)小游戲的前端框架嗎?7. node.js - 阿里云ECS,阿里云Docker,還有Leancloud的LeanEgine,哪個(gè)更適合NodeJs WebApp?8. python - pip install出現(xiàn)下面圖中的報(bào)錯(cuò) 什么原因?9. java - 線上應(yīng)用,如果數(shù)據(jù)庫(kù)操作失敗的話應(yīng)該如何處理?10. java - 創(chuàng)建maven項(xiàng)目失敗了 求解決方法
排行榜

熱門標(biāo)簽