Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
for文禁止縛り in JS
Search
Nkowne63
March 28, 2019
Technology
0
750
for文禁止縛り in JS
for文を使わないで js を書くときに役立ちそうなtips
Nkowne63
March 28, 2019
Tweet
Share
More Decks by Nkowne63
See All by Nkowne63
TypeScriptのコード生成をつらくしないために
neutron63zf
1
750
2020-11-05-side-effects-composition__1_.pdf
neutron63zf
1
450
vueで中規模以上のフロントエンドを組んでいて 役に立ったtips
neutron63zf
5
3.3k
20200128_nkowne63
neutron63zf
0
38
Vueで「見た目」「振る舞い」を分離してみよう
neutron63zf
0
600
20190523_nkowne63zf_1.pdf
neutron63zf
0
410
「つなぎこみ」を自動化する
neutron63zf
0
510
Other Decks in Technology
See All in Technology
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
270
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.9k
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
0
170
re:Invent2025 3つの Frontier Agents を紹介 / introducing-3-frontier-agents
tomoki10
0
370
20251222_サンフランシスコサバイバル術
ponponmikankan
2
130
ZOZOの独自性を生み出す「似合う4大要素」の開発サイクル
zozotech
PRO
0
110
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
610
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
202512_AIoT.pdf
iotcomjpadmin
0
120
接客歴・営業歴の方が長いエンジニアから見たre:Invent2025
yama3133
0
100
JEDAI認定プログラム JEDAI Order 2026 エントリーのご案内 / JEDAI Order 2026 Entry
databricksjapan
0
160
Agent Skillsがハーネスの垣根を超える日
gotalab555
5
3.4k
Featured
See All Featured
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
400
Crafting Experiences
bethany
0
21
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
87
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1k
The browser strikes back
jonoalderson
0
70
Done Done
chrislema
186
16k
Information Architects: The Missing Link in Design Systems
soysaucechin
0
710
Abbi's Birthday
coloredviolet
0
3.6k
The Curious Case for Waylosing
cassininazir
0
190
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
What does AI have to do with Human Rights?
axbom
PRO
0
1.9k
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文禁止縛りでもできないことはないがどれも黒魔術) • 任意回数ループ(メモリを食わずにやる方法を知りたい ...)