arr の値を arrnew に割り当てるのはなぜですか?また、arr が変化すると arrnew も変化するのはなぜですか? arrnewでarrのデータを取得したい場合、arr以降の操作を行わずに書き込むにはどうすればよいでしょうか?
let arr=[1,2,3,4,5]
let arrnew=arr
arr=arr.sort((a,b)=>{return b-a})
コンソール.log(arr)//[5, 4, 3, 2, 1]
console.log(arrnew)//[5, 4, 3, 2, 1]
世界只因有你2017-07-05 10:41:07
配列もオブジェクトおよび参照型です。代入時にはアドレスが割り当てられ、代入のために新しいオブジェクトが複製されることはありません。
sort
は元の配列を変更します
上記2点をまとめると、arrを変更すると当然arrnewも変更されます