1

現在、ここに配列があり、最後のアイテムを変更してプッシュバックしたいと考えています。ここにこのコードがあります:(例は簡略化されています)

var array = [
                 [ [0,1,2], [3,4,5] ]
            ];

//other stuff...

var add = array[0].slice(); //to clone the array (but not working as expected)
add[0][0] = 10;
array.push(add);

console.log(array);

そして、これが結果です

       ここに画像の説明を入力

ご覧のとおり、1 番目と 2 番目のアイテムの両方で、最初のアイテムが に変更されてい10ます。どうすればこの問題を解決できますか? すでにアレイのクローンを作成しています。

4

2 に答える 2

5

Array.prototype.slice()浅いコピーを行うため、ネストされた配列はコピーされません。このようなディープ クローン メソッドを使用する必要があります。

于 2013-07-19T03:55:56.150 に答える