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())