これは、JavaScript の仕組みの一部を理解していないだけだと思います。配列があるとしましょう。arr1
それを と呼び、6 つの int が含まれてい [1,2,3,4,5,6]
ます。新しい配列を作成する場合:
var arr2 = arr1
( の変更されていないコピーを維持する目的でarr1
)、変更arr1
すると、変更が に反映されarr2
ます。
基本的に、私は操作してarr1
います。テスト目的で、変更されていない のコピーがarr1
必要だったので、完了したら、Web ページで両方を console.log アウトして、それらの違いを確認できます。しかし、 で変更を加えるとarr1
、その変更が に反映されarr2
ます。
なぜこれが起こるのか、そしておそらくそれを回避する方法を誰かが説明できますか? 修正方法よりも、なぜこれが起こるのかに興味があります。
1 つの方法はarr2
、別の配列を作成し、for ループを使用してarr1
のデータを入力することです。
for(int i = 0; i < arr1.length; i++) arr2[i] = arr1[i]
ただし、配列が巨大な場合、コストが高くなる可能性があります。どんな助けでも大歓迎です。