recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Problème d'affectation de tableau

Pourquoi attribuer la valeur de arr à arrnew ? Pourquoi arrnew change-t-il lorsque arr change ? Si vous voulez qu'arrnew récupère les données de arr, comment les écrire sans suivre l'opération après 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(arrnew)//[5, 4, 3, 2, 1]

高洛峰高洛峰2705 Il y a quelques jours643

répondre à tous(4)je répondrai

  • 世界只因有你

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

    1. Les tableaux sont également des objets et des types de référence lors de l'attribution, l'adresse est attribuée et un nouvel objet ne sera pas cloné pour l'affectation.

    2. sort changera le tableau d'origine

    Pour résumer les deux points ci-dessus, changer d'arr changera naturellement d'arrnew

    répondre
    0
  • 世界只因有你

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

    let arrnew = arr.slice()

    répondre
    0
  • 高洛峰

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

    Cet article vous sera d’une grande aide ! cliquez-moi

    répondre
    0
  • 習慣沉默

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

    Votre assignation à arrnew n'est qu'une référence à l'adresse.

    Si vous souhaitez copier un tableau, vous pouvez utiliser l'opérateur spread, comme suit :

    let arrnew = [...arr];

    répondre
    0
  • Annulerrépondre