
目次
noConflict
_(アンダースコア)以外の文字を割り振る
var r = document.getElementById("r");
var _u = _.noConflict();
r.innerHTML = _u.isBoolean(1 === 1);
//=> true
identity
引数と同じものを返す
var r = document.getElementById("r");
var data = {name: 'sato'};
r.innerHTML = (data === _.identity(data));
//=> true
constant
引数として使用されているのと同じ値の関数を返す
var r = document.getElementById("r");
var data = {name: 'sato'};
r.innerHTML = (data === _.constant(data)());
//=> true
noop
渡される引数に関わらずundefinedを返す
var r = document.getElementById("r");
var obj = {};
obj.initialize = _.noop;
r.innerHTML = obj.initialize;
//=> function() {}
times
指定した回数分処理を繰り返す
var r = document.getElementById("r");
_(3).times(function(n) {
r.innerHTML += 'A';
});
// => AAA
random
指定した最小値と最大値の間の数をランダムで返す
var r = document.getElementById("r");
r.innerHTML = _.random(1, 6);
// => 1 ~ 6
最小値を省略すると0が最小値になる
var r2 = document.getElementById("r2");
r2.innerHTML = _.random(6);
// => 0 ~ 6
mixin
アンダースコアにfunction関数を追加
var r = document.getElementById("r");
_.mixin({
double: function(num) {
return num * 2;
}
});
r.innerHTML = _(10).double();
// => 20
iteratee
文字列であればキーの値を返す
var data = [{name: 'sato', age: 20}, {name: 'suzuki', age: 30}];
var r = document.getElementById("r");
r.innerHTML = _.map(data, _.iteratee('name'));
// => ["sato", "suzuki"]
オブジェクトであればキーと値が一致すればtrueを返す
var data = [{name: 'sato', age: 20}, {name: 'suzuki', age: 30}];
var r2 = document.getElementById("r2");
r2.innerHTML = _.map(data, _.iteratee({name: 'sato'}));
// => [true, false]
uniqueId
文字列のうしろにユニークIDを付けて返す
var r = document.getElementById("r");
for(var i=0; i<5; i++) {
r.innerHTML += _.uniqueId('id') + ' ';
}
escape
HTMLの&, <, >, ", `, ' をエスケープして返す
var r = document.getElementById("r");
console.log(_.escape('& < > " ` \''));
// => & < > " ` '
unescape
& < > " ` 'をアンエスケープして返す
※公式サイトでは`と書かれているが`は存在しないためこれは間違い。
var r = document.getElementById("r");
console.log(_.unescape('& < > " ` ''));
// => & < > " ` '
result
キーが関数の場合その返り値を返し、関数でなければ値を返す
var obj = {dog: 'bow', cat: function(){ return 'mew'; }};
var r = document.getElementById("r");
r.innerHTML = _.result(obj, 'dog');
// => 'bow'
var obj = {dog: 'bow', cat: function(){ return 'mew'; }};
var r2 = document.getElementById("r2");
r2.innerHTML = _.result(obj, 'cat');
// => 'mew'
now
現在の日時をタイムスタンプ(ミリ秒)で返す
var r = document.getElementById("r");
r.innerHTML = _.now();
// => 1417530708195
template
<%= hoge %>を変数として使用するテンプレートを作成
var r = document.getElementById("r");
var test = _.template("Hello <%= str %>");
r.innerHTML = test({str: 'world!'});
// => "Hello world";
<%= hoge %>内に文字列を入れる場合はprint()を使用する
var test = _.template("<% print('Hello ' + str); %>");
r.innerHTML = test({str: "world!"});
// => Hello world!
ほかのUnderscore.jsの記事
- Underscore.js 1.7の使い方 Arrays編
- Underscore.js 1.7の使い方 Collections編
- Underscore.js 1.7の使い方 Objects編
- Underscore.js 1.7の使い方 Functions編
- Underscore.js 1.7の使い方 Chaining編
