”JavaScriptで学ぶ関数型プログラミング”を読む上での メモ
- 作者: Michael Fogus,和田祐一郎
- 出版社/メーカー: オライリージャパン
- 発売日: 2014/01/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (1件) を見る
読み進めていて、色々なメソッドやUnderScore.jsを使って説明などをしているので、ネットで調べながら読んでます。
その時に調べたことを、いくつかメモします。
Arrayのsortメソッド
// 引数なしで渡すと辞書順に並べる。 var test1 = [0, -1, -2].sort(); console.log(test1); //=> [-1, -2, 0] var test2 = ["c", "b", "a"].sort(); console.log(test2); //=> ["a", "b", "c"] // コンパレータ関数を渡す function comparator(x, y){ return x >= y; } var test3 = [0, -1, -2].sort(comparator); console.log(test3); //=> [-2, -1, 0]
test3 の結果について。
引数にコンパレータ関数を渡す場合は、コンパレータ関数によってソートします。
そのソート方法は、下記の画像のようになるみたいです。
Underscore.jsのreduceメソッド
_.reduce(list, iterator, [memo], [context])
[ ]で囲んでいる引数は、省略可能です。
listの要素を、一つの値にまとめるメソッド。
listに入っている値を iterator関数に一個ずつ渡してまとめます。
[memo] まとめた変数の初期値です。
下記は、reduceメソッドを使って配列の要素を一つの文字列にまとめています。
var array = ["a", "b", "c"]; var test1 = _.reduce(array, function(result, value){result +=value; return result;}, ""); console.log(test1); //=> "abc" var test2 = array.join(""); console.log(test2); //=> "abc"
iterator(result, value)
第一引数 resultに、まとめ先の変数が渡され
第二引数 valueに、一個ずつ取り出した値が渡されます。