ikemonn's blog

技術ネタをちょこちょこと

JavaScript

【Underscore.js】_.matcherを読んだ

jashkenas/underscoreの_.matcherを読んだ。 概要 _.matcher(attrs) 引数の「key : val」と同じものがあるかを判別する部分適用した関数を返す。 var matcher = _.matcher({age: 20, sex: "male"}); console.log(matcher({age: 20, sex: "male", country: "J…

【Underscore.js】_.omitを読んだ

jashkenas/underscoreの_.omitを読んだ。 概要 _.omit(object, *keys) 第1引数から第2引数以降で指定したkey値以外のkey値とその値で構成されたObjectを返す。 var x = _.omit( {age: 20, sex: "male", country: "JP", name: "HOGA"}, ['age', 'sex']); cons…

【Underscore.js】_.pickを読んだ

jashkenas/underscoreの_.pickを読んだ。 概要 _.pick(object, *keys) 第一引数から第2引数以降で指定したkey値とその値で構成されたObjectを返す。 var x = _.pick({age: 20, sex: "male", country: "JP", name: "HOGA"}, 'age', 'country'); console.log(x…

【Underscore.js】_.extendと_.extendOwnを読んだ

jashkenas/underscoreの_.extendと_.extendOwnを読んだ。 概要 _.extend(destination, *sources) _.extendOwn(destination, *sources) extend: sourcesに含まれている全てのプロパティ(プロトタイプを含む。)をdestinationにコピーしたものを返す extendOw…

【Underscore.js】_.mapObjectを読んだ

jashkenas/underscoreの_.mapObjectを読んだ。 概要 _.mapObject(object, iteratee, [context]) objectの各値に第2引数で指定した関数を適用した第1引数を返す。.mapは値の配列を返すが、.mapObjectはオブジェクトを返す。 _.mapObject({age: 20, score: 50}…

【Underscore.js】_.throttleを読んだ

jashkenas/underscoreの_.throttleを読んだ。 概要 _.throttle(function, wait, [options]) functionを一度目は即時実行して、二回目以降はwaitミリ秒待ってから実行する関数を返す。waitミリ秒までに複数回関数を実行しようとしても、最後に受け付けた関数…

【Underscore.js】_.deferを読んだ

jashkenas/underscoreの_.deferを読んだ。 概要 _.defer(function, *arguments) ``` 現在のコールスタックがクリアされたあとに、functionを実行させる。 setTimeoutを0msで実行するのと似ている。 処理が重い計算や、HTMLのレンダリング等に使うと便利。 co…

【Underscore.js】_.memoizeを読んだ

jashkenas/underscoreの_.memoizeを読んだ。 概要 _.bind(function, object, *arguments) 一度計算した値をキャッシュしておく機能を関数に付け加える。 var num = 40; var fib = function(n) { return n < 2 ? n : fib(n - 1) + fib(n - 2); }; console.tim…

【Underscore.js】_.sortedIndexを読んだ

jashkenas/underscoreの_.sortedIndexを読んだ。 概要 _.sortedIndex(list, value, [iteratee], [context]) ソートされているlistに対して、valueがどの位置に入るかを返す。 _.sortedIndex([10, 20, 30, 40, 50], 35); // 3 ソースコード _.sortedIndex = f…

【Underscore.js】_.zipを読んだ

jashkenas/underscoreの_.zipを読んだ。 概要 _.zip(*arrays) 引数である各配列のindex値の値をまとめた配列を作る。返される配列のlengthは引数の中で1番長いlengthを持つ配列と同じ長さになる。 var x = _.zip(['moe', 'larry', 'curly'], [30, 40, 50], […

【Underscore.js】_.uniqを読んだ

jashkenas/underscoreの_.uniqを読んだ。 概要 _.uniq(array, [isSorted], [iteratee]) arrayの各値の中で同じ値があった場合、1つだけにされ各値が重複のない配列として返される。配列がソートされている際に、isSortedをtrueにするとより高速に動作する。 …

【Underscore.js】_.intersectionを読んだ

jashkenas/underscoreの_.intersectionを読んだ。 概要 _.intersection(*arrays) 第一引数の配列の各値の中で、第二引数以降のすべての配列に含まれている値を返す。 var x = _.intersection([1, 10, 10, 3], [3 ,190, 10], [1, 545, 3, 10]); console.log(x…

【Underscore.js】_.unionを読んだ

jashkenas/underscoreの_.unionを読んだ。 概要 _.union(*arrays) 引数で与えられた配列を一つにまとめる。 その際に重複した値は削除され、重複した値がない配列となって返される。 var x = _.union([1, 10, 10, 3], [3 ,190]); console.log(x); // [1, 10,…

【Underscore.js】_.withoutを読んだ

jashkenas/underscoreの_.withoutを読んだ。 概要 _.without(array, *values) arrayからvaluesを除いた配列を返す。 var list = [1, 10, 7, 190, 43]; var x = _.without(list, 7, 43 ,190); console.log(x); // [1, 10] ソースコード _.without = function(…

【Underscore.js】_.flattenを読んだ

jashkenas/underscoreの_.flattenを読んだ。 概要 _.flatten(array, [shallow]) 入れ子になっている配列を、一次元の配列に変換する。 shallowがtrueの時は、一つだけ入れ子をなくす。 list = [1, 10, 7, [190, 43], [[1]]]; var x = _.flatten(list); conso…

【Underscore.js】_.compactを読んだ

jashkenas/underscoreの_.compactを読んだ。 概要 _.compact(array) 配列の中のfalsyな値(false, null, 0, "", undefined, NaN)を除いて返す。 var list = [0, null, undefined, 1, 2, "null", "", NaN]; var x = _.compact(list); console.log(x); // [1, 2…

【Underscore.js】_.initialを読んだ

jashkenas/underscoreの_.initialを読んだ。 概要 _.initial(array, [n]) 末尾からn個を除くすべての配列の要素を返す。 nが指定されていない時は、arrayの最後の要素以外のすべてを返す。 var list = [1, 10, 7, 190, 43]; var x = _.initial(list); consol…

【Underscore.js】_.partitionを読んだ

jashkenas/underscoreの_.partitionを読んだ。 概要 _.partition(array, predicate) listをpredicateを満たすものと満たさないものの2つ配列に分割して返す。 var list = [1, 10, 7, 190, 43];var x = _.partition(list, function(num) { return num % 2 ===…

【Underscore.js】_.toArrayを読んだ

jashkenas/underscoreの_.toArrayを読んだ。 概要 _.toArray(list) listを配列にして返す。 var list = {age: 20, sex: "male", country: "JP", name: "hoge"}; var x = _.toArray(list); console.log(x); // [20, "male", "JP", "hoge"] ソースコード _.toA…

【Underscore.js】_.sampleを読んだ

jashkenas/underscoreの_.sampleを読んだ。 概要 _.sample(list, [n]) listからn個のランダムな値を取り出す。nが指定されない時は1つ取り出す。 var list = [1, 4, 15, 200, 3]; var x = _.sample(list); console.log(x); // 4 ソースコード _.sample = fun…

【Underscore.js】_.groupByを読んだ

jashkenas/underscoreの_.groupByを読んだ。 概要 _.groupBy(list, iteratee, [context]) listの各要素をiterateeを使ってグルーピングする。 iterateeが関数でない場合は、そのプロパティの値ごとにグルーピングする。 var list = [ {age: 20, sex: "male",…

【Underscore.js】_.sortByを読んだ

jashkenas/underscoreの_.sortByを読んだ。 概要 _.sortBy(list, iteratee, [context]) listの各要素をiterateeを使って評価した順にソートし、返す。 iterateeはプロパティの名前でも良い。 var list = [ {age: 22, sex: "male", country: "US", name: "fug…

【Underscore.js】_.maxを読んだ

jashkenas/underscoreの_.maxを読んだ。 概要 _.max(list, [iteratee], [context]) listの中の最大値を返す。 iterateeに関数が与えられると、その返り値が比較基準になる。 リストが空だと-Infinityが返るので、isEmptyを使って判定すること。 var list = […

【Underscore.js】_.pluckを読んだ

jashkenas/underscoreの_.pluckを読んだ。 概要 _.pluck(list, propertyName) listの中のpropertyNameで指定したプロパティの値を取得して配列で返す。 mapのよく使われる用途のラッパー。 var list = [ {age: 20, sex: "male", country: "JP", name: "hoge"…

【Underscore.js】_.invokeを読んだ

jashkenas/underscoreの_.invokeを読んだ。 概要 _.invoke(list, methodName, *arguments) 入れ子構造になっている配列の各要素の配列に対して関数を実行する。 _.invoke([[1, 4, 5, 2, 3], [10, 30, 20], [100, 78]], 'shift’); // [1, 10, 100] ソースコー…

【Underscore.js】_.containsを読んだ

jashkenas/underscoreの_.containsを読んだ。 概要 _.contains(list, value, [fromIndex]) listにvalueがあればtrueを返す。 _.contains([1, 2, 3], 3); // true ソースコード _.contains = _.includes = _.include = function(obj, item, fromIndex, guard)…

【Underscore.js】_.someを読んだ

jashkenas/underscoreの_.someを読んだ。 概要 _.some(list, [predicate], [context]) listの値をpredicateに渡し、trueになるものがあればtrueを返す。 var list = [1, 2, 3, 4, 5]; var x = _.every(list, function(n) { return n > 3; }); console.log(x)…

【Underscore.js】_.everyを読んだ

jashkenas/underscoreの_.everyを読んだ。 概要 _.every(list, [predicate], [context]) listの値をpredicateに渡した時に、すべてtrueであればtrueを返す。 var list = [1, 2, 3, 4, 5]; var x = _.every(list, function(n) { return n > 0; }); console.lo…

【Underscore.js】_.rejectを読んだ

jashkenas/underscoreの_.rejectを読んだ。 概要 _.reject(list, predicate, [context]) listの中で、predicateがfalseになる要素の配列を返す。 _.filterの反対のことをする関数。 var list = [1, 2, 3, 4, 5]; var x = _.reject(list, function(n) { retur…

【Underscore.js】_.findWhereを読んだ

jashkenas/underscoreの_.findWhereを読んだ。 概要 _.findWhere(list, properties) propertiesの中にあるkey-valueが含まれるもの中で、listの中の一番最初のものを取得する。 var list = [ {age: 20, sex: "male", country: "JP", name: "hoge"}, {age: 22…