ドットインストール Underscore.js入門
http://dotinstall.com/lessons/basic_underscorejs
レッスン一覧
* Underscore.js
概要
公式サイト underscore.org -> GitHub Repository
https://github.com/jashkenas/underscore知識
準備
2 はじめてのUnderscore.js
var x;
x = _.shuffle([2, 8, 10, 3]);
console.log(x);
オブジェクト指向的に書く方法
var x;
x = _([2, 8, 10, 3]).shuffle();
console.log(x);
3 each mapを使ってみる
- _.each([2, 5, 8], function(){ console.log(num * 2); });
- map
4 find, filter, contain
var a = [2, 5, 8, 42, 12];
var x;
x = _.find(a, function(num) { // 条件に合うものを探して最初に見つかったものを返す
return num > 5;
}) ;
console.log(x);
filter
var a = [2, 5, 8, 42, 12];
var x;
x = _.filter(a, function(num){ // 条件に合うものを探して見つかったものを全部返す
return num > 5;
})
console.log(x);
contains 集合要素にたいして存在するかしないかがかえる
var a = [2, 5, 8, 42, 12];
var x;
x = _.contains(a, 10);
console.log(x); // true か false が返る
05 groupBy, countByなど
var a = [1, 2, 3, 5, 8, 42, 12];
var x;
x = _.groupBy(a, function(num){ // 割ったときのあまりで自動的にグループする
return num % 3;
});
console.log(x);
countBy
var a = [1, 2, 3, 5, 8, 42, 12];
var x;
x = _.countBy(a, function(num){ // 数をかぞえてくれる
return num % 2 == 0 ? 'even' : 'odd';
});
console.log(x);
sortBy
var a = [1, 2, 3, 5, 8, 42, 12];
var x;
x = _.sortBy(a, function(num) {
return Math.sin(num);
});
console.log(x);
オブジェクトのプロパティでそーと
x = _.sortBy(["I", "me", "and"], 'length');
6 union uniq などを使ってみる
(function() {
var a = [1, 2, 5];
var b = [5, 2, 8];
var x = _.union(a, b);
console.log(x);
})();
- intersection (共通部分を探す)
var a = [1, 2, 5];
var b = [5, 2, 8];
var x = _.intersection(a, b);
console.log(x);
- difference(a, b) // b にはない a の要素
var a = [1, 2, 5];
var b = [5, 2, 8];
var x = _.difference(a, b);
console.log(x);
- unique()
Underscore.js
http://qiita.com/hp0me/items/72d80dc166aace2759dc#chaining
*Collections
each, map などjQuery でもあるようなアルゴリズム系、ループ系、シャッフル系 などのコア機能
つまり for文を関数で実行
_.each([2, 5, 10], alert);
_.where([arr], {key: "value"}) で検索できる
_.groupByでは、共通項をくくりだしてグループ
Arrays
_.last([5, 4, 3, 2, 1]);Functions
通常の便利系ではなく、高階関数(関数を引数に取る関数)を指す
_.bind
コード例
var func = function(greeting){return greeting + ': ' + this.name};
func = _.bind(func, {name: 'moe'}, 'hi');
func();
- Objects
_.values({one: 1, two: 2, three: 3});
- Utility
_.random(0, 100);
- Chaining _([1, 2, 3, 4, 5]).shuffle().shuffle();