Normalizing Arrays
by origineil
JavaScript
groupedObjects = [
{ value: 125, currency: "EUR" },
{ value: 100, currency: "USD" },
{value: 320, currency: "RON" }
]
groupedObjects1 = [
{ value: 500, currency: "EUR" },
{ value: 280, currency: "RON" },
{ value: 270, currency: "AUD" }
]
var dataContext = (function(a,b){
var container = {map: {a:{}, b:{}}};
container.currencies = (function(){
var array = [];
var func = function(arrayKey){ return function(key,value){
array.push(value.currency);
container.map[arrayKey][value.currency] = value.value;
}
};
$.each(a, func('a'));
$.each(b, func('b'));
return array.filter(function(elem, pos) {
return array.indexOf(elem) == pos;
}).sort()
})();
container.getNormalizedArrays = function(){
var arrays = {a: [], b: []};
function normalizer(target, currency){
var value = container.map[target][currency]
arrays[target].push({value: value?value:0, currency: currency})
}
$.each(container.currencies, function(key, value){
normalizer('a', value);
normalizer('b', value);
})
return arrays;
}
return container;
})(groupedObjects, groupedObjects1);
console.log(dataContext)
console.log(dataContext.getNormalizedArrays())