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
36
Vueで「見た目」「振る舞い」を分離してみよう
neutron63zf
0
590
20190523_nkowne63zf_1.pdf
neutron63zf
0
400
「つなぎこみ」を自動化する
neutron63zf
0
480
Other Decks in Technology
See All in Technology
「Chatwork」の認証基盤の移行とログ活用によるプロダクト改善
kubell_hr
1
240
2025-06-26_Lightning_Talk_for_Lightning_Talks
_hashimo2
2
120
生成AI活用の組織格差を解消する 〜ビジネス職のCursor導入が開発効率に与えた好循環〜 / Closing the Organizational Gap in AI Adoption
upamune
6
4.7k
Node-RED × MCP 勉強会 vol.1
1ftseabass
PRO
0
180
AI導入の理想と現実~コストと浸透〜
oprstchn
0
160
rubygem開発で鍛える設計力
joker1007
3
290
AIとともに進化するエンジニアリング / Engineering-Evolving-with-AI_final.pdf
lycorptech_jp
PRO
0
140
GeminiとNotebookLMによる金融実務の業務革新
abenben
0
250
無意味な開発生産性の議論から抜け出すための予兆検知とお金とAI
i35_267
2
4k
Delegating the chores of authenticating users to Keycloak
ahus1
0
130
React開発にStorybookとCopilotを導入して、爆速でUIを編集・確認する方法
yu_kod
1
110
LangSmith×Webhook連携で実現するプロンプトドリブンCI/CD
sergicalsix
1
160
Featured
See All Featured
Thoughts on Productivity
jonyablonski
69
4.7k
Faster Mobile Websites
deanohume
307
31k
Site-Speed That Sticks
csswizardry
10
680
Documentation Writing (for coders)
carmenintech
72
4.9k
KATA
mclloyd
30
14k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
35
2.4k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.4k
Agile that works and the tools we love
rasmusluckow
329
21k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
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文禁止縛りでもできないことはないがどれも黒魔術) • 任意回数ループ(メモリを食わずにやる方法を知りたい ...)