JavaScriptわからない

qiita.com

これ便利そうなんだけど、reduceとかどうしてそうなるのかがよくわからない。
いや、正確に言うとじっくり式を見てみれば何をやっているのかはわかるんだけど、なぜそのやり方でやらないといけないのかがわからない。
ES2015では当たり前のやり方なのだろうか? 読みにくくないか? そういうもんなのか。。?

あとJavaScriptというかjQueryなんだけど、何でeachの引数の順番がforEachと違うのだ。

qiita.com

forじゃなくてeachなんだから敢えてインデックス使うことは少ない。でもインデックスが先に来ちゃってるから、インデックス使わないときも$(something).each(i, e)とか書かないといけない。使うのはeだけだ。

あと、なんでこんなに広まっている言語なのに基本的な関数がなかったりするのか。
なんでゼロパディングを自分で作らないといけないのか。
forEachはどうしてオブジェクトを回してくれないのか。

JavaScriptは難しい。こういうのに慣れれば楽しいんだろうなとは思うけれども。。