javascript – Array-Zuweisungsproblem
高洛峰
高洛峰 2017-07-05 10:39:07
0
4
704

Warum arrnew den Wert von arr zuweisen? Warum ändert sich arrnew, wenn sich arr ändert? Wenn Sie möchten, dass arrnew die Daten von arr erhält, wie schreiben Sie sie, ohne den Vorgang nach arr zu befolgen?
let arr=[1,2,3,4,5]
let arrnew=arr
arr=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教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

Antworte allen(4)
世界只因有你
  1. 数组也是属于对象,属于引用类型,当进行赋值时,赋值的是地址,并不会克隆一个新对象进行赋值。

  2. sort会改变原数组

综上两点,改变arr自然会改变arrnew

世界只因有你

let arrnew = arr.slice()

小葫芦

这篇文章对你有很大帮助!click me

習慣沉默

你对arrnew的赋值只是地址的引用。

如果要复制数组,可以使用扩展运算符,如下:

let arrnew = [...arr];
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage