関数を返す関数
実践JavaScript / 全 5 枚
実践JavaScript - 関数を返す関数
変換を並べて 1 本にまとめる
前後の空白を落として、長さを切り詰めて、と変換が続くと呼び出しが入れ子になって読めなくなります。処理の順番を配列で受け取り、順に通す関数を組み立てて返します。
return が組み立てた関数を外へ出す唯一の出口です。この出口が塞がると何が返るのかを次の図解で見ます。
pipe が返すのは変換の結果ではなく、2 つの変換を順に通す 1 本の関数です。
function pipe(steps) {
return function (value) {
return steps.reduce((current, step) => step(current), value);
};
}
const trim = (s) => s.trim();
const short = (s) => s.slice(0, 8);
const toLabel = pipe([trim, short]);
console.log(toLabel(" 料理レシピ検索アプリ ")); // "料理レシピ検索ア"1 / 5
← → キーでも送れます