1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 | 1 1 1 1 1 1 1 1 105 105 149 105 1 1 1 1 22 1 168 360 124 236 168 1 107 214 42 172 107 | 'use strict'; var util = module.exports = require('datalib/src/util'); util.extend(util, require('datalib/src/generate')); util.extend(util, require('datalib/src/stats')); util.extend(util, require('./logger')('[VL Error]')); util.bin = require('datalib/src/bins/bins'); util.isin = function(item, array) { return array.indexOf(item) !== -1; }; util.forEach = function(obj, f, thisArg) { if (obj.forEach) { obj.forEach.call(thisArg, f); } else { for (var k in obj) { f.call(thisArg, obj[k], k , obj); } } }; util.reduce = function(obj, f, init, thisArg) { Iif (obj.reduce) { return obj.reduce.call(thisArg, f, init); } else { for (var k in obj) { init = f.call(thisArg, init, obj[k], k, obj); } return init; } }; util.map = function(obj, f, thisArg) { if (obj.map) { return obj.map.call(thisArg, f); } else { var output = []; for (var k in obj) { output.push( f.call(thisArg, obj[k], k, obj)); } } }; util.any = function(arr, f) { var i = 0, k; for (k in arr) { if (f(arr[k], k, i++)) return true; } return false; }; util.all = function(arr, f) { var i = 0, k; for (k in arr) { if (!f(arr[k], k, i++)) return false; } return true; }; util.getbins = function(stats, maxbins) { return util.bin({ min: stats.min, max: stats.max, maxbins: maxbins }); }; /** * x[p[0]]...[p[n]] = val * @param noaugment determine whether new object should be added f * or non-existing properties along the path */ util.setter = function(x, p, val, noaugment) { for (var i=0; i<p.length-1; ++i) { if (!noaugment && !(p[i] in x)){ x = x[p[i]] = {}; } else { x = x[p[i]]; } } x[p[i]] = val; }; /** * returns x[p[0]]...[p[n]] * @param augment determine whether new object should be added f * or non-existing properties along the path */ util.getter = function(x, p, noaugment) { for (var i=0; i<p.length; ++i) { if (!noaugment && !(p[i] in x)){ x = x[p[i]] = {}; } else { x = x[p[i]]; } } return x; }; |