/note/tech

[JavaScript] reduceは可読性が悪くループで置き換え可能なので使わないようにしている話

reduceを使わなくてもおそらく全ての場面においてループ処理で記載でき、そのほうが読みやすいので、わざわざreduceを使う必要がまずありません。

関数型的な、array.forEachや、array.map、array.filter、array.find、array.findIndex、これらは使いやすく直感的なので私はよくつかいます。なので、関数型的なコードを否定するわけではないです。

その関数型プログラミング的なものの中でも、reduce は圧倒的に使いにくく読みにくく、置き換え可能なので使う必要がないだろうと思っています。reduce は forEach, for ,for of などで置き換え可能です。そして置き換えたほうが可読性があがり、修正も機能拡張も高いだろうと思います。

forではなくreduceを使って「こんな新しい構文使いこなせる俺すげー」的な記事を、両手の指の数くらいは見てきたと思います。ループでは数行かかるけど、reduce使えば1行で短いぜ、みたいな記事も多いです。