Underscore.
コレクションの機能
Underscore.
配列のようなオブジェクト
「配列のようなオブジェクト」
Argumentsオブジェクト、
ここでは、
メソッド名 | 説明 | Alias |
---|---|---|
_.each(list, iterator, [context]) | listの各要素に対してiteratorを実行します。iteratorの引数は(element, index, list)になります。ネイティブの機能でforEach()が使える環境ではそちらを使います。 | forEach |
_.map(list, iterator, [context]) | listの各要素に対してiteratorを実行した新しい配列を返します。iteratorの引数は(element, index, list)になります。ネイティブの機能でmap()が使える環境ではそちらを使います。 | collect |
_.reduce(list, iterator, memo, [context]) | listの各要素に対してiteratorを実行し累積結果を返します。iteratorの戻り値は累積結果であり、 | inject, foldl |
_.reduceRight(list, iterator, memo, [context]) | _.reduce()と同等の処理をlistの最後から実行します。ネイティブの機能でreduceRight()が使える環境ではそちらを使います。 | foldr |
_.find(list, iterator, [context]) | listの各要素に対してiteratorを実行し、 | detect |
_.filter(list, iterator, [context]) | listの各要素に対してiteratorを実行し、 | |
_.where(list, properties) | listの各要素に対してiteratorを実行し、 | |
_.findWhere(list, properties) | listの各要素に対してiteratorを実行し、 | |
_.reject(list, iterator, [context]) | listの各要素に対してiteratorを実行し、 | |
_.every(list, [iterator], [context]) | listの各要素に対してiteratorを実行し、 | all |
_.some(list, [iterator], [context]) | listの各要素に対してiteratorを実行し、 | any |
_.contains(list, value) | listにvalueが含まれていれば真を返します。 | include |
_.invoke(list, methodName, [*arguments]) | listの各要素に対してmethodNameというメソッドを実行した新しい配列を返します。追加されたargumentsはメソッドの実行時に渡されます。 | |
_.pluck(list, propertyName) | listに各要素にpropertyにpropertyNameで指定した値が含まれた新しい配列を返します。_.map()のよく用いられる使われ方です。 | |
_.max(list, [iterator], [context]) | listの各要素の最大値を返します。iteratorが指定されるとlistに各要素にiteratorを実行し、 | |
_.min(list, [iterator], [context]) | listの各要素の最小値を返します。iteratorが指定されるとlistに各要素にiteratorを実行し、 | |
_.sortBy(list, iterator, [context]) | listの各要素を、 | |
_.groupBy(list, iterator, [context]) | listの各要素を、 | |
_.indexBy(list, iterator, [context]) | listの各要素を、 | |
_.countBy(list, iterator, [context]) | listの各要素を、 | |
_.sortedIndex(list, value, [iterator], [context]) | ソートされたlistに対してvalueの挿入する際のインデックスを返します。 | |
_.shuffle(list) | listの各要素を、 | |
_.sample(list, [n]) | listの各要素を、 | |
_.toArray(list) | listを配列として返します。argumentsオブジェクトにたいてい使われます。 |
_.each()
- 書式
- _.each(list, iterator, [context])
listの各要素に対してiterator
iteratorには引数は3つ渡します。引数が配列なら
もし [context] オブジェクトが渡されたら、
下記の例を見ると、
_.each()を使うと繰り返しの文がfor文などで表すよりシンプルになり、
_.map()
- 書式
- _.map(list, iterator, [context])
_.map()は_.each()と同様に、
ネイティブの機能でmap()が使える環境ではそちらを使います。なお、
_.reduce()
- 書式
- _.reduce(list, iterator, memo, [context])
_.reduce()はlistの各要素に対してiteratorを実行し累積結果を返します。これは関数型プログラミングでは普通に行われる処理で、
iteratorの戻り値は累積結果であり、
iteratorの引数は
ネイティブの機能でreduce()が使える環境ではそちらを使います。
_.filter()
- 書式
- _.filter(list, iterator, [context])
listの各要素に対してiteratorを実行し、
ネイティブの機能でfilter()が使える環境ではそちらを使います。
_.every()と_.some()
- 書式
- _.every(list, [iterator], [context])
- _.some(list, [iterator], [context])
_.every()と_.some()はlistの各要素に対してiteratorを実行し判定を行います。
_.every()はlistの各要素に対してiteratorを実行し、
ネイティブの機能でevery()が使える環境ではそちらを使います。
_.some()はlistの各要素に対してiteratorを実行し、
ネイティブの機能でsome()が使える環境ではそちらを使います。
配列の機能
Underscore.
疎な配列
疎な配列とは配列の要素が0から順に埋まっていない配列になります。
その他の機能につきましては表2に簡単な説明を書きましたので、
メソッド名 | 説明 | Alias | |
---|---|---|---|
_.first(array, [n]) | 配列の最初の要素を返します。nで返す要素の数を指定できます。 | head, take | |
_.initial(array, [n]) | 配列の最後の要素を除いた配列を返します。nで除く要素の数を指定できます。 | ||
_.last(array, [n]) | 配列の最後の要素を返します。nで返す要素の数を指定できます。 | ||
_.rest(array, [index]) | 配列の最初の要素を除いた配列を返します。indexで除く要素の数を指定できます。 | tail, drop | |
_.compact(array) | 配列から偽となる要素を除いた配列を返します。 | ||
_.flatten(array, [shallow]) | 入れ子になった配列をフラットにします。shallowが真の場合、 | ||
_.without(array, [*values]) | 配列からvaluesを除いた配列を返します。 | ||
_.union(*arrays) | 渡された複数の配列の和集合を返します。 | ||
_.intersection(*arrays) | 渡された複数の配列の積集合を返します。 | ||
_.difference(array, *others) | 配列から配列 | ||
_.uniq(array, [isSorted], [iterator]) | 配列の要素がユニークなもののみ配列にして返します。 | ||
_.zip(*arrays) | 渡された複数の配列を同じインデックスの要素にまとめた配列を返します。 | ||
_.object(list, [values]) | 配列をオブジェクトに変換して返します。 [キー、 | ||
_.indexOf(array, value, [isSorted]) | 配列の要素の中にvalueが存在すればその最初のインデックスを返します。配列の要素の中に存在しない場合は'-1'を返します。ネイティブの機能でindexOf()が使える環境ではそちらを使います。 | ||
_.lastIndexOf(array, value, [fromIndex]) | 配列の要素の中にvalueが存在すればその最後のインデックスを返します。配列の要素の中に存在しない場合は'-1'を返します。ネイティブの機能でlastIndexOf()が使える環境ではそちらを使います。 | ||
_.range([start], stop, [step]) | 整数の配列を返します。_.map()、 |
_.compact()
- 書式
- _.compact(array)
配列から偽となる要素を除いた配列を返します。偽の判定は、
_.union()と_.intersection()
- 書式
- _.union(*arrays)
- _.intersection(*arrays)
_.union()と_.intersection()は渡された複数の配列をまとめます。_.union()は渡された複数の配列の和集合を返します。
_.intersection()は渡された複数の配列の積集合を返します。
_.indexOf()
- 書式
- _.indexOf(array, value, [isSorted])
配列の要素の中にvalueが存在すればその最初のインデックスを返します。
配列の要素の中に存在しない場合は
ネイティブの機能でindexOf()が使える環境ではそちらを使います。
_.range()
- 書式
- _.range([start], stop, [step])
整数の配列を返します。_.map()、
オブジェクトの機能
Underscore.
その他の機能につきましては表3に簡単な説明を書きましたので、
メソッド名 | 説明 | Alias |
---|---|---|
_.keys(object) | オブジェクトのプロパティ名をすべてを返します。 | |
_.values(object) | オブジェクトのプロパティ値のすべてを返します。 | |
_.pairs(object) | オブジェクトのプロパティ名とプロパティ値を配列のペアにして返します。 | |
_.invert(object) | オブジェクトのプロパティ名をプロパティ値に、 | |
_.functions(object) | オブジェクトの関数プロパティをソートされた配列で返します。 | methods |
_.extend(destination, *sources) | ’sources'オブジェクトのプロパティを'destination'オブジェクトにコピーして'destination'オブジェクトを返します。’sources'オブジェクトに同じプロパティ名を持つ場合は最後のものが上書きされます。 | |
_.pick(object, *keys) | オブジェクトからkeysのプロパティ名 | |
_.omit(object, *keys) | オブジェクトからkeysのプロパティ名 | |
_.defaults(object, *defaults) | オブジェクトのプロパティで’ defaults’ | |
_.clone(object) | オブジェクトの浅い (shallow) コピーされたクローンを作成します。ネストされたオブジェクトや配列は、 | |
_.tap(object, interceptor) | オブジェクトをinterceptorに渡しオブジェクトを返します。_.chainの中間結果に対して実行をする際に主に使われます。 | |
_.has(object, key) | オブジェクトにkeyのプロパティ値のオブジェクトがあるか判定します。hasOwnPropertyのショートカットになりますがより安全な参照を行っています。 | |
_.isEqual(object, other) | 二つのオブジェクトが等しいか深い比較を行い判定します。 | |
_.isEmpty(object) | オブジェクトが要素を持っているか判定します。 | |
_.isArray(object) | オブジェクトが配列かどうか判定します。 | |
_.isObject(value) | 渡された値がオブジェクトかどうか判定します。 | |
_.isArguments(object) | Argumentオブジェクトか判定します。 | |
_.isFunction(object) | 関数か判定します。 | |
_.isString(object) | 文字列か判定します。 | |
_.isNumber(object) | 数字 | |
_.isFinite(object) | 有限数か判定します。 | |
_.isBoolean(object) | bool値か判定します。 | |
_.isDate(object) | 日付オブジェクトか判定します。 | |
_.isRegExp(object) | 正規表現オブジェクトか判定します。 | |
_.isNaN(object) | NaNか判定します。ネイティブのisNaN()はundefinedでも真を返しますが、 | |
_.isNull(object) | nullか判定します。 |
_.keys()と_.values()
- 書式
- _.keys(object)
- _.values(object)
_.keys()と_.values()はオブジェクトのプロパティ名、
_.values()はオブジェクトのプロパティ値のすべてを返します。
_.extend()
- 書式
- _.extend(destination, *sources)
sourcesオブジェクトのプロパティをdestinationオブジェクトにコピーしてdestinationオブジェクトを返します。sourcesオブジェクトに同じプロパティ名を持つ場合は最後のものが上書きされます。
_.defaults()
- 書式
- _.defaults(object, *defaults)
オブジェクトのプロパティでdefaultsオブジェクトのプロパティの未定義
_.isArray()
- 書式
- _.isArray(object)
配列でしたら真を返します。
ネイティブの機能でArray.
まとめ
Underscore.
次回は
- 関数の機能
- ユーテリティ
(テンプレート等) - Chaining
を紹介する予定です。次回もよろしくお願いします。