suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – Array-Zuweisungsproblem

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]

高洛峰高洛峰2781 Tage vor684

Antworte allen(4)Ich werde antworten

  • 世界只因有你

    世界只因有你2017-07-05 10:41:07

    1. 数组也是属于对象,属于引用类型,当进行赋值时,赋值的是地址,并不会克隆一个新对象进行赋值。

    2. sort会改变原数组

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

    Antwort
    0
  • 世界只因有你

    世界只因有你2017-07-05 10:41:07

    let arrnew = arr.slice()

    Antwort
    0
  • 高洛峰

    高洛峰2017-07-05 10:41:07

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

    Antwort
    0
  • 習慣沉默

    習慣沉默2017-07-05 10:41:07

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

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

    let arrnew = [...arr];

    Antwort
    0
  • StornierenAntwort