Example #1
0
 _.zip = function() {
   var args = slice.call(arguments);
   var length = _.max(_.pluck(args, 'length'));
   var results = new Array(length);
   for (var i = 0; i < length; i++) results[i] = _.pluck(args, "" + i);
   return results;
 };
exports.listInfo = function (url, list, show_details, callback) {
    var db = couchdb(url);
    var colwidth = _.max(list.map(function (l) {
        return l.length;
    }));
    async.forEachSeries(list, function (l, cb) {
        if (show_details) {
            db.client('GET', l, {}, function (err, info) {
                if (err) {
                    if (err.error === 'unauthorized') {
                        console.log(l);
                        return cb();
                    }
                    return cb(err);
                }
                console.log(
                    utils.padRight(l, colwidth + 4) +
                    utils.padRight(info.doc_count + ' docs', 16) +
                    utils.formatSize(info.disk_size)
                );
                cb();
            });
        }
        else {
            console.log(l);
            setImmediate(cb);
        }
    }, callback);
};
Example #3
0
 assignItemID: function(item) {
     'use strict';
     if (this.built.length === 0) {
         item.id = 1;
         return;
     }
     item.id = _.max(this.built, function(e) {
         return e.id;
     }).id + 1;
 },
Example #4
0
var ngrams = function(sequence, n) {
	var result = [];
	if (!_(sequence).isArray()) {
		return result;
	}

	var count = _.max([0, sequence.length - n + 1]);
	for (var i = 0; i < count; i++) {
		result.push(sequence.slice(i,i+n));
	}
	return result;
}
Example #5
0
 setTimeout(function() {
     if(!_.isNull(this.game)) {
         if(this.game.found.length > 0) {
             var winner = _.invert(this.game.scores)[_.max(this.game.scores)];
             event.reply('GAME OVER. THE WINNER IS ' + winner.toUpperCase() + ' WITH ' + this.game.scores[winner]);
             event.reply(this.game.solutions.length - this.game.found.length + ' solutions remained.'); 
         } else {
             event.reply('NO SOLUTIONS FOUND. YOU ARE ALL RUBBISH.');
         }
         this.game = null;
     }
 }.bind(this), 40000);
Example #6
0
var ngrams = function(sequence, n, startSymbol, endSymbol) {
    var result = [];
    
    if (!_(sequence).isArray()) {
        sequence = tokenizer.tokenize(sequence);
    }

    var count = _.max([0, sequence.length - n + 1]);

    // Check for left padding    
    if(typeof startSymbol !== "undefined" && startSymbol !== null) {
        // Create an array of (n) start symbols
        var blanks = [];
        for(var i = 0 ; i < n ; i++) {
            blanks.push(startSymbol);
        }

        // Create the left padding
        for(var p = n - 1 ; p > 0 ; p--) {
            // Create a tuple of (p) start symbols and (n - p) words
            result.push(blanks.slice(0, p).concat(sequence.slice(0, n - p)));
        }
    }

    // Build the complete ngrams
    for (var i = 0; i < count; i++) {
        result.push(sequence.slice(i, i + n));
    }

    // Check for right padding
    if(typeof endSymbol !== "undefined" && endSymbol !== null) {
        // Create an array of (n) end symbols
        var blanks = [];
        for(var i = 0 ; i < n ; i++) {
            blanks.push(endSymbol);
        }

        // create the right padding
        for(var p = n - 1 ; p > 0 ; p--) {
            // Create a tuple of (p) start symbols and (n - p) words
            result.push(sequence.slice(sequence.length - p, sequence.length).concat(blanks.slice(0, n - p)));
        }
    }
    
    return result;
}
Example #7
0
    this.listener = function(event) {
        if(!_.isNull(this.game) && this.game.channel === event.channel.name) {
            if(_.include(this.game.solutions, event.message) && !_.include(this.game.found, event.message)) {
                if(!_.has(this.game.scores, event.user)) this.game.scores[event.user] = 0;
                this.game.scores[event.user]++;
                this.game.found.push(event.message);
                event.reply(event.user + ': ' + event.message.toUpperCase() + ' IS CORRECT. ' + 
                    this.game.found.length + '/' + this.game.solutions.length + ' WORDS FOUND');

                if(this.game.found.length === this.game.solutions.length) {
                    var winner = _.invert(this.game.scores)[_.max(this.game.scores)];
                    event.reply('ALL WORDS FOUND. THE WINNER IS ' + winner.toUpperCase() + ' WITH ' + this.game.scores[winner]);
                    this.game = null;
                }
            }
        }
    }.bind(this);
Example #8
0
// contains: 判断元素是否在list中
console.log(_.contains([1,2,3,4], 8));

// invoke: 在list里的每个元素上调用名为methodName的函数,任何附加的函数传入,invoke将会转给调用的函数
var v = _.invoke([[2,1,3], [4,5,2]], 'sort')
console.log("v", v);

// pluck: 提取一个集合里指定的属性值
var users = [
    {name:'moe', age: 40},
    {name:'larry', age: 50}
];
console.log(_.pluck(users, 'name'));
// max, min, sortBy:取list中的最大,最小元素,自定义比较器
console.log(_.max(users, function(stooge){
    return stooge.age
}));
console.log(_.min(users, function(stooge){
    return stooge.age //{ name: 'moe', age: 40 }
}));
console.log(_.sortBy([3,4,1,2,6], function(num){
    return Math.max(num);//[ 1, 2, 3, 4, 6 ]
}));

// groupBy 一个集合分成多个集合
console.log(_.groupBy(['one', 'two', 'three'], 'length'));//{ '3': [ 'one', 'two' ], '5': [ 'three' ] }
// size 得到list中元素个数
console.log(_.size({one:1, two:2, three: 3})); //3
// shuffle:随机打乱一个数据
console.log(_.shuffle([1,2,3,4,5,6,7]));
// countBy 把一个数据分组后计数
Example #9
0
Helpers.prototype.getRange = function(array) {
	return _.max(array) - _.min(array);
}