配列.filter()のように、コールバックの戻り値に応じて動作を変える関数の例。
// コールバックの戻り値がtrueならxが選ばれる関数。
function 関数(x, y, コールバック) {
if (コールバック(x, y) === true) {
console.log(`不思議の国の${x}`)
} else {
console.log(`不思議の国の${y}`)
}
}
// このパターンは匿名関数をよく使う。
関数('アリス', 'アリストテレス', () => {
return Math.random() < 0.9 // 9割はtrue
})
// すっきりコードや再利用なら名前あり関数で。
関数('アリスタルコス', 'アリス', 長い方) // 不思議の国のアリスタルコス
関数('アリス', 'アリスティッポス', 長い方) // 不思議の国のアリスティッポス
function 長い方(x, y) {
return x.length > y.length // xが長い
}