cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Masalah tugasan tatasusunan

Mengapa menetapkan nilai arr kepada arrnew? Mengapa arrnew berubah apabila arr berubah? Jika anda mahu arrnew mendapatkan data arr, bagaimanakah anda harus menulisnya tanpa mengikuti operasi selepas arr?
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(arnew)//[5, 4, 3, 2, 1]

高洛峰高洛峰2705 hari yang lalu645

membalas semua(4)saya akan balas

  • 世界只因有你

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

    1. Tatasusunan juga merupakan objek dan jenis rujukan Apabila menetapkan, alamat ditetapkan dan objek baharu tidak akan diklon untuk tugasan.

    2. sort akan menukar tatasusunan asal

    Untuk meringkaskan dua perkara di atas, menukar arr secara semula jadi akan berubah arrnew

    balas
    0
  • 世界只因有你

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

    biar arrnew = arr.slice()

    balas
    0
  • 高洛峰

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

    Artikel ini akan sangat membantu anda! klik saya

    balas
    0
  • 習慣沉默

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

    Tugasan anda kepada arrnew hanyalah rujukan kepada alamat.

    Jika anda ingin menyalin tatasusunan, anda boleh menggunakan pengendali penyebaran, seperti berikut:

    let arrnew = [...arr];

    balas
    0
  • Batalbalas