◆ reduce でもできます
◆ こっちのほうがシンプルです 

ここでは関数合成に

function composite(){
var args = [].slice.call(arguments)
return function(v){
for(var i=0;i<args.length;i++){
v = args[i](v)
}
return v
}
}
という関数を作って
composite(parseInt, plus20, mod5, Math.sqrt, toString, JSON.stringify)("123.456")
という風にやってました


reduce で初期値指定できることもわかりましたし reduce でやってみます
function compose(v, fn){return fn(v)}
[parseInt, plus20, mod5, Math.sqrt, toString, JSON.stringify].reduce(compose, "123.456")

こっちのほうがシンプルです

その場で実行するだけならこれでいいですけど 合成した関数を変数に入れておいて使い回す というなら上側のようにしないとダメです
for文のところをこのreduceに置き換えることはできますけど それほど短くなるわけではないです

実行するなら plus20 などの未定義関数は自分で作るか上のリンク先のをコピペでお願いします