(JS)reduce
ブログめっちゃサボった.
情緒不安定無気力状態が続いてたのでブログ書けなかった. 状態がそれほど良くなったわけじゃないんだけど,何か作業をするのがいいと思って書いている.
reduce
JSでreduceを書いてみた.関数型プログラミングで使われるアレだ. 車輪の再発明だっていうのはわかってる.(reduceは,lodash.jsにもECMA-262第5版等にもある) だけど,どんな感じで実装するのかなと興味がありやってみた.
function reduce(array, fun, initialValue) { var acc; var startIndex; if (initialValue !== undefined) { acc = initialValue; startIndex = 0; } else { acc = array[0]; startIndex = 1; } for (var i = startIndex; i < array.length; i++) { acc = fun.apply(null, [acc, array[i]]); } return acc; }
不十分なところがあると言えばあるとも言えるけどまあよし.
ところでreduceって使い所難しい.コードを実装し終わったら「あ,ここはreduceだったな」となることが多い.