JavaScript - 配列の割り当ての問題
高洛峰
高洛峰 2017-07-05 10:39:07
0
4
658

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]

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(4)
世界只因有你
  1. 配列もオブジェクトおよび参照型です。代入時にはアドレスが割り当てられ、代入のために新しいオブジェクトが複製されることはありません。

  2. sortは元の配列を変更します

上記2点をまとめると、arrを変更すると当然arrnewも変更されます

いいねを押す +0
世界只因有你

arrnew = arr.slice() にしてみます

いいねを押す +0
小葫芦

この記事はとても役に立ちます!クリックしてください

いいねを押す +0
習慣沉默

あなたのarrnewへの割り当ては、アドレスへの単なる参照です。

配列をコピーしたい場合は、次のようにスプレッド演算子を使用できます:

リーリー
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート