0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

とある記事ではJavaScriptのfor句を巡って議論が交わされていたので少し興味をもちました。私はこれらの議論に参加できるほどの専門力はありませんが感想程度に。
間違い等あればコメントいただけますと幸いです。

読み取れたこと

メリット

  • 行数が減る
  • ネストが深くなりづらい
  • 可読性...?
🤔.js
const a = [];
for (let i=0; i<=99; i++){
  a.push(i);
}

const a = Array(100).fill().map((_, i)=>i)
  • 一度forなしを見てしまったが最後、「ひとつひとつ取り出して〜する」みたいな思想はなんだか原始的に感じる?
  • なんかletォ?!的な印象
  • push()は破壊的メソッドなのでなんか印象が悪い
  • 副作用が少ないなど

デメリット

  • 遅い ← 泣いた😭

これは正直意外でした。誰がどう見ても早く見える。省略記法=高速処理という観念を根っこから削ぎ落とす現実がそこにはあった。

※ 🤔.jsの比較結果、 「code block 1」がforを使った方
image.png

Pythonだと内包表記なるものの方が速かったりするのですが...
まあこれはどちらもforを使ってるので例が悪いですね。良い例があればコメントお願いします

🐍.py
a = []
for i in range(100):
    a.append(i)

a = [i for i in range(100)] # faster!

なんかステキやん

  • 結論から言うと、処理の複雑さによって使い分けが重要だなと感じだところです
  • ただ、メソッドチェーン表記は一種のロマンというか、クソ難しい処理を一発でかけた時の達成感がヤバい
  • だから私はメソッドチェーン
0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?