エントリーの編集
![loading...](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/common/loading@2x.gif)
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
オブジェクト、配列のコピー - (new Hatena).blog()
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
![アプリのスクリーンショット](https://b.st-hatena.com/bdefb8944296a0957e54cebcfefc25c4dcff9f5f/images/v4/public/entry/app-screenshot.png)
- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
オブジェクト、配列のコピー - (new Hatena).blog()
JavaScript では、オブジェクトや配列を関数に渡す時、常にポインタが使われます。いわゆる copy by ref... JavaScript では、オブジェクトや配列を関数に渡す時、常にポインタが使われます。いわゆる copy by reference ですね。変数に代入する場合も同様です。 当然メモリー効率を配慮した設計な訳ですが、どうしてもコピーが欲しい時もあるものです。 配列のコピーを取りたい時はどうすればいいでしょうか。 var a = [1, 2, 3]; var b = []; b.unshift(a);うまくいった気がしませんか? 実はこれは駄目なんですね。unshift が引数に取るのは、配列ではなく、配列に加えたい要素のリストなので、ここでは b[0] に a が丸ごと入ってしまっていることになります(私はこれに気付かず長時間悩みました)。 で、改めて調べたところ、concat メソッドを使えば良いことがわかりました。 var a = [1, 2, 3]; var b = a.concat