Underscore.js 5回目、Collection編のラストです。
groupBy
_.groupBy(list, iterator)
groupByは、与えられたリストをグルーピングします。グルーピングの条件はイテレータで指定します。イテレータにはinvoke同様、関数を文字列で指定することも可能です。
_ = require 'underscore' ipaddrs = [ "192.168.0.10" "192.168.0.20" "192.168.2.1" "192.168.0.122" "192.168.3.6" "192.168.4.8" "192.168.3.22" "192.168.1.100" "192.168.4.9" "192.168.5.232" ] result = _.groupBy ipaddrs, (ip)-> ip.split('.')[2] console.log result実行結果
$ coffee groupBy.coffee { '0': [ '192.168.0.10', '192.168.0.20', '192.168.0.122' ], '1': [ '192.168.1.100' ], '2': [ '192.168.2.1' ], '3': [ '192.168.3.6', '192.168.3.22' ], '4': [ '192.168.4.8', '192.168.4.9' ], '5': [ '192.168.5.232' ] }
sortedIndex
_.sortedIndex(list, value, [iterator])
sortedIndexは、指定した値がリストのどのインデックスに入るべきかを返します。
_ = require 'underscore' index = _.sortedIndex [-10,10,20,40,50], 45 console.log index実行結果
$ coffee sortedIndex.coffee 4
shuffle
_.shuffle(list)
shuffleは、与えられたリストの要素をシャッフルします。シャッフルのアルゴリズムには、有名なFisher–Yates shuffle を採用しています。
_ = require 'underscore' console.log _.shuffle [1,2,3,4,5,6] console.log _.shuffle [1,2,3,4,5,6] console.log _.shuffle [1,2,3,4,5,6]実行結果
$ coffee shuffle.coffee [ 2, 1, 4, 5, 3, 6 ] [ 3, 5, 4, 2, 1, 6 ] [ 5, 4, 2, 1, 6, 3 ]
toArray
_.toArray(list)
toArrayは、与えられた引数を配列にして返します。argumentsオブジェクトを変換するのによく使われるそうで。
_ = require 'underscore' console.log (()-> _.toArray arguments )(1, 2, 3, "hello", true, {name:"hoge"})実行結果
$ coffee toArray.coffee [ 1, 2, 3, 'hello', true, { name: 'hoge' } ]
size
_.size(list)
sizeは、配列の大きさを返します。
_ = require 'underscore' console.log _.size ["hello",2,false,4,{name:"hoge"}]実行結果
$ coffee size.coffee 5
関連ページ
0 件のコメント:
コメントを投稿