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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Nkowne63
March 28, 2019
Technology
770
0
Share
for文禁止縛り in JS
for文を使わないで js を書くときに役立ちそうなtips
Nkowne63
March 28, 2019
More Decks by Nkowne63
See All by Nkowne63
TypeScriptのコード生成をつらくしないために
neutron63zf
1
790
2020-11-05-side-effects-composition__1_.pdf
neutron63zf
1
460
vueで中規模以上のフロントエンドを組んでいて 役に立ったtips
neutron63zf
5
3.4k
20200128_nkowne63
neutron63zf
0
46
Vueで「見た目」「振る舞い」を分離してみよう
neutron63zf
0
620
20190523_nkowne63zf_1.pdf
neutron63zf
0
420
「つなぎこみ」を自動化する
neutron63zf
0
520
Other Decks in Technology
See All in Technology
20260528_生成AIを専属DSに_Howの次にすべきことを考える
doradora09
PRO
0
270
AI フレンドリーなエラー監視を TypeScript で実現する
shinyaigeek
2
200
Amazon Bedrock 経由の Claude Cowork を試してみよう・MCP にも繋いでみよう
sugimomoto
0
300
Claude Codeですべての日常業務を爆速化しよう!
minorun365
PRO
17
16k
『家族アルバム みてね』における インシデント対応との向き合い方 / Approach incident response in Family Album
kohbis
2
280
なぜハノーバーメッセに行くべきなのか 〜初参加だから語れること〜
tanakaseiya
0
190
コードレビューを制するチームがソフトウェアデリバリーのフローを制す / Beyond Code Review: Distributing Its Responsibilities Across the SDLC
mtx2s
3
500
開発を止めない CI/CD ~CI Visibilityによる継続的最適化~
pensuke628
0
220
個人の発見を、組織の知恵に 〜生成AI活用を"探索"から"組織の仕組み"へ〜
kintotechdev
2
290
AI時代から振り返るTerraform drift運用の歴史 / AI Age Reflections on the History of Terraform Drift Operations
aeonpeople
2
620
Oracle Cloud Infrastructure:2026年5月度サービス・アップデート
oracle4engineer
PRO
1
280
Databricks 月刊サービスアップデート 2026年05月号
tyosi1212
0
120
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
390
The SEO Collaboration Effect
kristinabergwall1
1
470
A Tale of Four Properties
chriscoyier
163
24k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
230
Why Our Code Smells
bkeepers
PRO
340
58k
Exploring anti-patterns in Rails
aemeredith
3
380
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.5k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
260
Abbi's Birthday
coloredviolet
2
7.8k
Site-Speed That Sticks
csswizardry
13
1.2k
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文禁止縛りでもできないことはないがどれも黒魔術) • 任意回数ループ(メモリを食わずにやる方法を知りたい ...)