5
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

JavaScript における配列コピー

JavaScript における配列コピーの問題

JavaScript における配列( array )はオブジェクトのため参照コピーされる。
つまり、コピー先の配列を変更すると、コピー元の配列が変更されてしまうといった事象が発生する。
例えば次のようになる。

array = [1,2,3];
arrayCopy = array;
arrayCopy[0] = 4;
console.log(arrayCopy); // [4,2,3]
console.log(array); // [4,2,3] : コピー元の値も変更される

JavaScript における配列コピーの解決策

2020年11月現在ではいくつかの方法があるので代表的なものを紹介する。

slice()

速度が早い、と言われている。

array = [1,2,3];
arrayCopy = array.slice();

concat()

slice() 同様、速度が早い、と言われている。

array = [1,2,3];
arrayCopy = array.concat();

スプレッド構文( ES2015 )

最も直感的な記述だと思われる。

array = [1,2,3];
arrayCopy = [...array];

その他

for() や while() 、map() 、filter() 、reduce()、from() による方法あり。

参考

その他のアドカレ参加

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
5
Help us understand the problem. What are the problem?