function randomize(deck) { var i; deck = _.values(deck); for (i = Math.floor(Math.random() * 400 + 10); i > 0; i = -1) { deck = _.shuffle(deck); } return deck; }
var _ = require('underscore')._; var fs = require('fs'); var data = JSON.parse(fs.readFileSync('../negochat_private/parsed_finalized.json')) data = _.shuffle(data) data = _.shuffle(data) data = _.shuffle(data) data = _.shuffle(data) data = _.shuffle(data) data = _.shuffle(data) console.log(JSON.stringify(data, null, 4))
// 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 把一个数据分组后计数 console.log(_.countBy([1,2,3,4,5], function(num){ return num % 2 == 0 ? 'even':'odd'; //{ odd: 3, even: 2 } }));
getRandomKey: function(length) { srcArr = _.shuffle(srcArr); var srcSample = _.sample(srcArr, length); return srcSample.join(''); }