Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
for文禁止縛り in JS
Search
Nkowne63
March 28, 2019
Technology
0
730
for文禁止縛り in JS
for文を使わないで js を書くときに役立ちそうなtips
Nkowne63
March 28, 2019
Tweet
Share
More Decks by Nkowne63
See All by Nkowne63
TypeScriptのコード生成をつらくしないために
neutron63zf
1
710
2020-11-05-side-effects-composition__1_.pdf
neutron63zf
1
440
vueで中規模以上のフロントエンドを組んでいて 役に立ったtips
neutron63zf
5
3.2k
20200128_nkowne63
neutron63zf
0
37
Vueで「見た目」「振る舞い」を分離してみよう
neutron63zf
0
590
20190523_nkowne63zf_1.pdf
neutron63zf
0
400
「つなぎこみ」を自動化する
neutron63zf
0
480
Other Decks in Technology
See All in Technology
MUITにおける開発プロセスモダナイズの取り組みと開発生産性可視化の取り組みについて / Modernize the Development Process and Visualize Development Productivity at MUIT
muit
1
16k
B2C&B2B&社内向けサービスを抱える開発組織におけるサービス価値を最大化するイニシアチブ管理
belongadmin
1
7k
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
2
7.8k
整頓のジレンマとの戦い〜Tidy First?で振り返る事業とキャリアの歩み〜/Fighting the tidiness dilemma〜Business and Career Milestones Reflected on in Tidy First?〜
bitkey
2
16k
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
4
13k
AI時代の開発生産性を加速させるアーキテクチャ設計
plaidtech
PRO
3
160
ビギナーであり続ける/beginning
ikuodanaka
3
760
第4回Snowflake 金融ユーザー会 Snowflake summit recap
tamaoki
1
280
使いたいMCPサーバーはWeb APIをラップして自分で作る #QiitaBash
bengo4com
0
1.9k
赤煉瓦倉庫勉強会「Databricksを選んだ理由と、絶賛真っ只中のデータ基盤移行体験記」
ivry_presentationmaterials
2
360
怖くない!はじめてのClaude Code
shinya337
0
400
品質と速度の両立:生成AI時代の品質保証アプローチ
odasho
1
360
Featured
See All Featured
Navigating Team Friction
lara
187
15k
Music & Morning Musume
bryan
46
6.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
10
950
Six Lessons from altMBA
skipperchong
28
3.9k
The Straight Up "How To Draw Better" Workshop
denniskardys
234
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
126
53k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.3k
BBQ
matthewcrist
89
9.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
30
2.1k
Building an army of robots
kneath
306
45k
Transcript
for文禁止縛り in JS
for文禁止縛りって? その名の通り、 for文を使わずに繰り返し処理を書こう! というもの。 用量・用法を守って適切に使いましょう ...
Step. 1 配列の加工 大体の繰り返しは、繰り返す対象の配列が存 在しているので結構使われる。 なかでも、一つ一つを加工する場合は多い。
Step. 1 配列の加工 こういう、「配列の個々の要素を加工する」系 の処理はmapで書ける。 加工する処理を関数として分離できた。
Step. 2 配列に関する繰り返し 配列を加工しないけど、「全要素に対してなん かしたい」ときもある。
Step. 2 配列に関する繰り返し そういうときはforEachを使うと書ける。 mapよりも自由度の高い処理が可能
Step. 3 前のループの結果が 必要 たまに、「前のループの結果」が必要な処理が ある。 右側のスクリプトは、配列の中のオブジェクト を全てマージする例。
Step. 3 前のループの結果が 必要 こういう場合こそ、「reduce」を使うことができ る。 サンプルは足し算なので、使いどころはないと 思われがちだが、実は汎用性が高い。 「今までの累計、今の要素の値」から、「今の 要素も含めた累計」を返す関数を使う。
Step. 4 オブジェクトの プロパティごとに処理 右側はプロパティの値を全部 1加算するスクリ プト。
Step. 4 オブジェクトの プロパティごとに処理 Object.entries関数を使うと、オブジェクトを [key, value]の配列に変換することができる。 Step. 3を使うともとのオブジェクトに戻せる。 賛否両論。
Step. 5 探索 while文やfor文で配列の要素を探索する場合 を考える(効率は悪いのでこんなことしないか もしれないが) 右のは、最初の偶数を探すプログラム。
Step. 5 探索 こういうのは、「find」という関数が用意されて いる。indexOfで探索する手法が一般的だ が、値だけ必要な場合はfindで充分である。 条件を満たす全ての値が欲しいときは filterを 使う。
Step. x その他 上のでできないこと • break(for文禁止縛りでもできないことはないがどれも黒魔術) • 任意回数ループ(メモリを食わずにやる方法を知りたい ...)