gist

2012年6月6日水曜日

CoffeeScriptで学ぶ Underscore.js 02(Collection編)

前回のエントリーでUserscore.jsをインストールし、いくつかのメソッドを紹介しました。今回は第2回。Collection編です。


find

findは、リストの中から条件に最初にマッチした値を1つだけ取得するメソッドです。条件にマッチしない場合、undefinedを返します。

_ = require 'underscore'

even = _.find [1,2,3,4,5,6], (n)->
 n % 2 == 0

console.log 'even is ' + even

empty = _.find [1,2,3,4,5,6], (n)->
 n % 10 == 0

console.log 'empty is ' + empty
実行結果
$ coffee find.coffee 
even is 2
empty is undefined

filter

filterは、リストの中から条件にマッチした値を配列で返します。条件にマッチしない場合、空の配列を返します。

_ = require 'underscore'

evens = _.filter [1,2,3,4,5,6], (num)->
 num % 2 == 0

console.log 'evens is ' + evens

empty = _.filter [1,2,3,4,5,6], (num)->
 num % 10 == 0

console.log 'length of array is ' + empty.length

実行結果
$ coffee filter.coffee 
evens is 2,4,6
length of array is 0

reject

rejectは、条件にマッチしなかった値を配列で返します。filterの逆の条件で作用します。

_ = require 'underscore'

odds = _.reject [1,2,3,4,5,6], (num)->
 num % 2 == 0

console.log 'odds is ' + odds

実行結果
$ coffee reject.coffee 
odds is 1,3,5

all

allは、リストの各要素が条件にすべてマッチした場合にtrueを返します。

_ = require 'underscore'

console.log _.all [2,4,6,8,10], (num)->
 num % 2 == 0

console.log _.all ["あ", "い", "う"], (char)->
 char == "い"
実行結果
$ coffee all.coffee 
true
false

any

anyは、リストの要素の中、ひとつでも条件にマッチした場合にtrueを返します。条件(イテレータ)がない場合、ひとつでもtrueと成り得る要素があった場合、trueを返します。

_ = require 'underscore'

console.log _.any [0, null, 'true', false]

console.log _.any [1, 3, 5, 7], (num)->
 num % 2 == 0

console.log _.any [1, 3, 5, 8], (num)->
 num % 2 == 0

実行結果
$ coffee any.coffee 
true
false
true

関連ページ


関連ページ

0 件のコメント: