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]
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.
sort
changera le tableau d'originePour résumer les deux points ci-dessus, changer d'arr changera naturellement d'arrnew
let arrnew = arr.slice()
Cet article vous sera d’une grande aide ! cliquez-moi
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 :