SlideShare a Scribd company logo
JavaScriptで配列をコピーする
LT#8 Leko
配列 オブジェクト
jsにおいて、配列もオブジェクト
JavaScriptとオブジェクト
ß  オブジェクト、配列の代入 = 参照渡し
破壊的な動作
ß  Array.reverse()
Þ  呼び出し元の配列も変更する
コピーする方法
ß  あるにはある※
ß  Array.slice(0), Array.concat()
※プリミティブのみ動作
プリミティブ = 数値, 文字列 etc...
(◞‸◟)oh…
JavaScriptパターン
ß  浅いコピー
Þ  前述の方法
ß  深いコピー
Þ  extendDeep()
Ý  そのプロパティがオブジェクト、配列だった場合
プロパティのプロパティに対して検査とコピーを
再帰的に行う
値がプリミティブになれば
コピー渡しになる
||
そこまで辿る
extendDeep()
(´へεへ`*)
おまけ:配列判定
あからさまな設計ミス
色々対策はある
速度比較
OSX Moutain Lion
Nodejs v0.8.17
isArray最速※
EcmaScript5環境のみ
=IE8以下は非対応\(^o^)/
おわり
Web EGG
宣伝:WEB EGG
http://leko.jp
\よろしければアクセスを!/

More Related Content

PPT
Power of Scala
PDF
Scala 初心者が米田の補題を Scala で考えてみた
PDF
Introduction to PEG
PDF
Scala 初心者が Hom 函手を Scala で考えてみた
ODP
(define)なしで再帰関数を定義する
PDF
たのしい関数型
PPTX
条件分岐・繰り返し処理
PDF
JSX / Haxe / TypeScript
Power of Scala
Scala 初心者が米田の補題を Scala で考えてみた
Introduction to PEG
Scala 初心者が Hom 函手を Scala で考えてみた
(define)なしで再帰関数を定義する
たのしい関数型
条件分岐・繰り返し処理
JSX / Haxe / TypeScript

What's hot (20)

PDF
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
PDF
Material
ODP
Real World OCamlを読んでLispと協調してみた
PPTX
R spec勉強会
PDF
Emcjp item21
PDF
並行プログラミングと継続モナド
PDF
Cocoa勉強会#43-Blocksを使う
PDF
Emcpp item31
PPT
アルゴリズムとデータ構造2
PDF
Emcjp item33,34
PDF
Stristr
PDF
BOF1-Scala02.pdf
PDF
関数型プログラミング入門 with OCaml
PDF
templateとautoの型推論
PPTX
第3章 型とクラス
PPTX
第3章 型とクラス
PDF
TypeScript & 関数型講座 第2回 TypeScript という言語
PDF
磯野ー!関数型言語やろうぜー!
PPT
言語処理系入門3
PDF
C++ ポインタ ブートキャンプ
「再代入なんて、あるわけない」 ~ふつうのプログラマが関数型言語を知るべき理由~ (Gunma.web #5 2011/05/14)
Material
Real World OCamlを読んでLispと協調してみた
R spec勉強会
Emcjp item21
並行プログラミングと継続モナド
Cocoa勉強会#43-Blocksを使う
Emcpp item31
アルゴリズムとデータ構造2
Emcjp item33,34
Stristr
BOF1-Scala02.pdf
関数型プログラミング入門 with OCaml
templateとautoの型推論
第3章 型とクラス
第3章 型とクラス
TypeScript & 関数型講座 第2回 TypeScript という言語
磯野ー!関数型言語やろうぜー!
言語処理系入門3
C++ ポインタ ブートキャンプ
Ad

More from Shingo Inoue (7)

PDF
LT#7 Hello coffeeしてきた
PPTX
LT#6 Taskete
PDF
コードゴルフ 〜今日から始める難読コードの世界〜
PDF
そしてjsの基礎へ戻る#4
PPTX
さらなるjsの深みへ#3
PDF
LTって、何の略だっけ。1
PDF
わかる LT@2
LT#7 Hello coffeeしてきた
LT#6 Taskete
コードゴルフ 〜今日から始める難読コードの世界〜
そしてjsの基礎へ戻る#4
さらなるjsの深みへ#3
LTって、何の略だっけ。1
わかる LT@2
Ad