Underscore使い方メモ
HTML
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<ul id="list"></ul>
CSS
.samples {
margin: 10px;
padding: 0px;
border: 1px dotted #aaf;
}
.samples li {
display: inline-block;
margin-left: 10px;
}
.title {
font-weight: bold;
}
JavaScript
var array = [1, 2, 3];
var obj = {hoge: 'HOGE', fuga: 'FUGA', piyo: 'PIYO'};
var objArray = [
{name: 'hoge', age: 10},
{name: 'fuga', age: 20},
{name: 'piyo', age: 30}
];
var samples = {
Collections: {
each: function () {
/*
* 指定した配列・オブジェクトの各要素を走査する。
*/
_.each(array, function (value, index, array) {
console.log('array[' + index + '] = ' + value);
});
_.each(obj, function(value, key, obj) {
console.log('obj[' + key + '] = ' + value);
});
},
map: function() {
/*
* 指定した配列・オブジェクトの各要素を走査して、
* iterator が返した値を要素として持つ新しい配列を返す。
*/
var result = _.map(array, function(value, index, array) {
return value * 2;
});
console.log(result);
result = _.map(obj, function(value, key, obj) {
return '<' + value + '>';
});
console.log(result);
},
reduce: function() {
/*
* 指定した配列・オブジェクトの各要素を走査して、
* iterator が最後に返した値を返す。
* iterator の第一引数には、最初 reduce メソッドの第三引数で指定した値が渡され、
* 2回目以降は、直前に iterator が返した値が渡される。
*/
var result = _.reduce(array, function(memo, value) {
console.log('memo = ' + memo + ', value = ' + value);
return memo + value;
}, 100);
console.log(result);
result = _.reduce(obj, function(memo, value) {
console.log('memo = ' + memo + ', value = ' + value);
return memo + ', '+ value;
}, 'obj');
console.log(result);
},
reduceRight: function() {
/*
* reduce メソッドの逆順序で配列・オブジェクトが走査される。
*/
...