為什麼把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]
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
數組也是屬於對象,屬於引用類型,當進行賦值時,賦值的是地址,並不會克隆一個新對象進行賦值。
sort會改原數組
sort
綜上兩點,改變arr自然會改變arrnew
讓 arrnew = arr.slice()
這篇文章對你有很大幫助! click me
你對arrnew的賦值只是地址的引用。
arrnew
如果要複製數組,可以使用擴充運算符,如下:
let arrnew = [...arr];
數組也是屬於對象,屬於引用類型,當進行賦值時,賦值的是地址,並不會克隆一個新對象進行賦值。
sort
會改原數組綜上兩點,改變arr自然會改變arrnew
讓 arrnew = arr.slice()
這篇文章對你有很大幫助! click me
你對
arrnew
的賦值只是地址的引用。如果要複製數組,可以使用擴充運算符,如下: