LoginSignup
1
1

More than 5 years have passed since last update.

JavaScriptライブラリ Underscore.js

Posted at

ドットインストール Underscore.js入門
http://dotinstall.com/lessons/basic_underscorejs

レッスン一覧
* Underscore.js


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();
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1