代入してはいけないのは流石に分かるのだけど、殊更JavaScriptになると「あれ、どうやるんだっけ?」と毎回調べるハメになる。いう状況なのですが、文句を言っても仕方がないので、愚直にやるわけです。思ってconcatもArray.fromも試したけどダメ。1時間くらい悩んで、「ああ、配列はディープコピーされたけど、中のオブジェクトが参照のままなのか」と気がついた。悩んで、下記の様にした。3}Array.map()の中でオブジェクトをObject.assign()でディープコピーして返している。mapは新しい配列を返すので、配列のコピーもOK。ところで、オブジェクトのディープコピーってオブジェクトのディープコピーも調べるといくつか出てくる。Object.assignってのがあるんだけど、Object.assignはシャローコピーなのでJSON.parse/JSON.stringifyって人もいれば、JSON.parse/JSON.stringifyは安易に使うな、Object.assignがディープコピーだからそっちを使えっていう堂々巡りで、というか読んでいるとどっちもどっち感が強くて、状況に合わせて自力でどうにかするしかないじゃんっていう......。おわりにもっと正しいスマートなやり方を教えてください。phpのcloneが配列に使えない(そして使う必要がない)のは知っているのだけれど、良い例が思い浮かばなかったのです。↩︎ツイッターでシェアみんなに共有、忘れないようにメモhammhiko恥を晒して生きていきます。Crieitは個人で開発中です。どんな軽い内容でも嬉しいです。