refactoring inject_zeros because the previous code was a mess

This commit is contained in:
Shelby Sturgis 2014-10-17 22:53:33 +03:00
parent 4f9684c2e9
commit 18d0ef995f
2 changed files with 30 additions and 31 deletions

View file

@ -17,42 +17,31 @@ define(function (require) {
* and injects zeros where needed.
*/
function getDataArray(obj) {
if (obj.rows) {
return obj.rows;
} else if (obj.columns) {
return obj.columns;
} else {
return [obj];
}
}
return function (obj) {
if (!_.isObject(obj) || !obj.rows && !obj.columns && !obj.series) {
throw new TypeError('ZeroInjectionUtilService expects an object with a series, rows, or columns key');
}
var keys = orderXValues(obj);
var max;
var zeroArray;
var dataArray;
var i;
var j;
var arr = getDataArray(obj);
if (!obj.series) {
var arr = obj.rows ? obj.rows : obj.columns;
max = arr.length;
arr.forEach(function (object) {
object.series.forEach(function (series) {
var zeroArray = createZeroFilledArray(keys);
for (i = 0; i < max; i++) {
var jMax = arr[i].series.length;
for (j = 0; j < jMax; j++) {
zeroArray = createZeroFilledArray(keys);
dataArray = arr[i].series[j].values;
arr[i].series[j].values = zeroFillDataArray(zeroArray, dataArray);
}
}
return obj;
}
max = obj.series.length;
for (i = 0; i < max; i++) {
zeroArray = createZeroFilledArray(keys);
dataArray = obj.series[i].values;
obj.series[i].values = zeroFillDataArray(zeroArray, dataArray);
}
series.values = zeroFillDataArray(zeroArray, series.values);
});
});
return obj;
};

View file

@ -16,7 +16,11 @@ define(function (require) {
{
label: '200',
values: [
{x: 'v1', y: 234}, {x: 'v2', y: 34}, {x: 'v3', y: 834}, {x: 'v4', y: 1234}, {x: 'v5', y: 4}
{x: 'v1', y: 234},
{x: 'v2', y: 34},
{x: 'v3', y: 834},
{x: 'v4', y: 1234},
{x: 'v5', y: 4}
]
}
]
@ -27,13 +31,19 @@ define(function (require) {
{
label: '200',
values: [
{x: '1', y: 234}, {x: '2', y: 34}, {x: '3', y: 834}, {x: '4', y: 1234}, {x: '5', y: 4}
{x: '1', y: 234},
{x: '2', y: 34},
{x: '3', y: 834},
{x: '4', y: 1234},
{x: '5', y: 4}
]
},
{
label: '404',
values: [
{x: '1', y: 1234}, {x: '3', y: 234}, {x: '5', y: 34}
{x: '1', y: 1234},
{x: '3', y: 234},
{x: '5', y: 34}
]
},
{