Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 29th, 2012  |  syntax: None  |  size: 0.86 KB  |  hits: 20  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. (function() {
  2.         // mimicing php's array_combine()
  3.         function combine(a, b) {
  4.                 var i, o = {};
  5.  
  6.                 for (i in a)
  7.                   o[a[i]] = b[i];
  8.  
  9.                 return o;
  10.         }
  11.        
  12.         // parses recordsets and returns an array of object instances
  13.         function recSet(data, facts) {
  14.                 facts = facts || window;
  15.                
  16.                 var head = data.head.split(data.fldt),
  17.                         recs = data.recs.split(data.rect),
  18.                         fact = data.fact ? facts[data.fact] : function(obj) {return obj;};
  19.  
  20.                 for (var i in recs)
  21.                         recs[i] = fact(combine(head, recs[i].split(data.fldt)));
  22.                
  23.                 return recs;
  24.         }
  25.        
  26.         // factories
  27.         var facts = {
  28.                 person: function(obj) {return obj;}
  29.         };
  30.        
  31.         // recordset
  32.         var data = {
  33.                 type: "delim",
  34.                 fldt: "|",
  35.                 rect: "~",
  36.                 fact: "person",                                 // object instantiation factory
  37.                 head: "fname|lname|moomoo",
  38.                 recs: "a|b|c~d|e|f",
  39.         };
  40.        
  41.         console.log(JSON.stringify(data));
  42.         console.log(JSON.stringify(recSet(data, facts)));
  43. })();