underscore.js の説明書写経などした。

underscore.js の説明書写経などした。

説明書の写経になんの意味があるかというとそれ自体にはあまり意味がなくて、読んでいるだけだとすぐ眠くなるしわりと読み飛ばすしけっこう忘れるからです。

なるべく自分の言葉になおすようにすると、ちゃんと読まなくちゃならないのでよい。動作確認は livereloadx 走らせておくと保存しただけで結果が見れてよい。いまいち何が起こってるかわからない場合は console.log(_.templete) などするとソースが見れてよい。

ちゃんと読んだ結果、いちいち自分で書いてたようなやつ大体よりよい形でカバーされてて、とても便利だということがわかった。

ちゃんと知りたいと思ったきっかけが backbone.js なので次は backbone.js さわる。

コレクション

_.each(list, iterator, [context])list の各値を iterator で処理する。
_.map(list, iterator, [context])list の各値を iterator で処理した新しい list を返す。
_.reduce(list, iterator, memo, [context])memo を初期値とし、list の各値を iterator で処理した値を memo に加える。
_.reduceRight(list, iterator, memo, [context])reduce を list のケツから行う。
_.find(list, iterator, [context])list を頭から iterator で真偽テストし、最初にパスした値を返す。
_.filter(list, iterator, [context])list の各値を iterator で真偽テストし、パスした値が入った list を返す。
_.where(list, properties)list の各値で properties が一致するものの list を返す。
_.findWhere(list, properties)list で properties が一致する最初のものを返す。
_.reject(list, iterator, [context])list の各値を iterator で真偽テストし、パスした値を取り除いた list を返す。
_.every(list, iterator, [context])list の各値を iterator で真偽テストし、全てがパスすると true を返す。
_.some(list, iterator, [context])list の頭から iterator で真偽テストし、パスした時点で true を返す。
_.contains(list, value)list に value が含まれていれば true を返す。
_.invoke(list, methodName, [*arguments])list の各値の methodName メソッドをコールする。
_.pluck(list, propertyName)list の各値の propertyName プロパティ値を list にして返す。
_.max(list, [iterator], [context])list の各値を比較し最大値を返す。iterator は比較に使われる。
_.min(list, [iterator], [context])list の各値を比較し最小値を返す。iterator は比較に使われる。
_.sortBy(list, iterator, [context])list の各値を iterator で比較し並べ替えられた list を返す。
_.groupBy(list, iterator)list の各値を iterator に渡し、その返り値によりグループ化する。
_.countBy(list, iterator, [context])list の各値を iterator に渡し、返り値の回数をカウントする。
_.shuffle(list)list をシャッフルした list を返す。
_.toArray(list)list を配列に変換する。
_.size(list)list の値の数を返す。

配列

_.first(arrat, [n])array の最初の要素を返す。n 値で最初から n 個の要素を返す。
_.last(array,[n])array の最後の要素を返す。n 値で最後から n 個の要素を返す。
_.initial(array, [n])array の最後の要素以外の array を返す。n 値で最後から n 個以外の array を返す。
_.rest(array, [index])array の最初の値を取り除いた array を返す。
_.compact(array)false として扱われる値を除いた array を返す。
_.flatten(array)多重 array を一つの array にして返す。
_.without(array, [*values])values と === の値を取り除いた array を返す。
_.union(*arrays)arrays を統合した array を返す。値は重複しない。
_.intersection(*arrays)arrays 全てに含まれる値の array を返す。
_.difference(array, other)other に存在しない array の値の array を返す。
_.uniq(array, [isSorted], [iterator])array 内の重複した値を一つにした array を返す。
_.zip(*arrays)arrays の同 index の各要素を array にしたものを含む array を返す。
_.unzip(*arrays)zip の逆。
_.object(list, [values])list の各要素を key、values の各要素を value としたプロパティを持つ object を返す。
_.indexOf(array, value, [isSorted])array の中で value がある最初の位置を返す。なければ -1 を返す。
_.lastIndexOf(array, value)array の中で value がある最後の位置を返す。なければ -1 を返す。
_.sortedIndex(list, value, [iterator])list の整列状態を維持した上で value が挿入されるべき位置を返す。
_.range([start], stop, [step])start から stop まで += step された数値の array を返す。stop は含まれない。

関数

_.bind(function, object, [*arguments])function の this を object に束縛した関数を返す。arguments がある場合は部分適用された関数が返る。
_.bindAll(object, *methodNames)object 内の methodNames メソッドの this を object に束縛する。
_.partial(function, [*arguments])arguments を引数として function に部分適用した関数を返す。
_.memorize(function, [hashFunction])function をメモ化した関数を返す。
_.delay(function, wait, [*arguments])function を wait ミリ秒後に呼びだす。
_.defer(function)function を 0 ミリ秒後に呼びだす。
_.throttle(function, wait)何度呼ばれても wait ミリ秒に一度だけ function を実行する関数を返す。
_.debounce(function, wait)呼びだされてから再度呼びだされずに wait ミリ秒間経たないと function を実行しない関数を返す。
_.once(function)function を最初の一度だけ実行し、その後は返り値を返すだけの関数を返す。
_.after(count, function)count 回コール後 function を実行する関数を返す。
_.wrap(function, wrapper)function を引数として実行する wrapper を実行する関数を返す。
_.compose(*functions)functions の頭から呼び出し、それぞれの返り値を引数として次の function に渡す関数を返す。

オブジェクト

_.keys(objext)object の全てのプロパティ名を array で返す。
_.values(object)object の全てのプロパティ値を array で返す。
_.functions(object)object の全てのメソッド名を array で返す。
_.extend(destination, *source)destination に *source の全プロパティを複製する。
_.pick(object, *keys)keys で指定したプロパティのみをもつ object を返す。
_.omit(object, *keys)keys で指定したプロパティを取り除いた object を返す。
_.defaults(object, *defaults)defaults の全プロパティの内、object が持たないプロパティを object に複製する。
_.clone(object)object を浅く複製する。
_.tap(object, interceptor)object を引数として interceptor を呼び出し後、object を返す。
_.has(object, key)key プロパティを持っていれば true を返す。
_.isEqual(object, other)object と other のプロパティを深く比較し真偽値を返す。
_.isEmpty(object)object が値を含まなければ true を返す。
_.iselement(object)object が DOM 要素であれば true を返す。
_.isArray(object)object が配列なら true を返す。
_.isArguments(object)object が Arguments なら true を返す。
_.isFunction(object)object が関数なら true を返す。
_.isString(object)object が文字列なら true を返す。
_.isNumber(object)object が数値なら true を返す。
_.isFinite(object)object が有限数なら true を返す。
_.isBoolean(object)object が真偽値なら true を返す。
_.isDate(object)object が日付なら true を返す。
_.isRegExp(object)object が正規表現なら true を返す。
_.isNaN(object)object が NaN の場合にのみ true を返す。
_.isNull(object)object が null の場合にのみ true を返す。
_.isUndefined(object)object が undefined の場合にのみ true を返す。

ユーティリティ

_.noConfrict()Underscore オブジェクトへの参照を返す。
_.identity(value)value を返す。
_.times(n, iterator)n 回 iterator を呼びだす。
_.random(min, max)min から max までの間の数値をランダムで返す。
_.mixin(object)Underscore オブジェクトを拡張する。
_.uniqueld([prefix])呼びだされるごとに一意の prefix + id を返す。prefix による id の区別はない。
_.escape(string)HTML に影響する特殊文字をエスケープした string を返す。
_.unescape(string)エスケープされた HTML に影響する特殊文字を元に戻した string を返す。
_.result(object, property)object 内の property がメソッドなら実行し、それ以外なら値を返す。
_.templete(templeteString, [context])templeteString を処理する関数を返す。

チェーン

_(obj).chain()value() が呼びだされるまでメソッドは obj をラップしたオブジェクトを返す。
_(obj).value() ラップされた obj を返す。