Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.82 KB | None | 0 0
  1. var handlers = {
  2. Object: flattenObject,
  3. Array: flattenArray,
  4. };
  5.  
  6. function router(val, store, prefix, i ) {
  7. var kind, handler, key = prefix? prefix + '.'+ i : i; ;
  8. if( val === undefined || val === null ){
  9. return store[ key ] = val;
  10. }
  11. kind = val.constructor.name;
  12. handler = handlers[kind];
  13.  
  14. if (handler) {
  15. return handler(val, store, key);
  16. }
  17.  
  18. return store[ key ] = val;
  19.  
  20. }
  21.  
  22. function flattenObject(obj, store, prefix) {
  23. var i, val, kind, handler;
  24. for (i in obj) {
  25. router( obj[i], store, prefix, i );
  26. }
  27. }
  28.  
  29. function flattenArray(obj, store, prefix) {
  30. var i=0, l = arr.length;
  31. while (i < l) {
  32. router( arr[i], store, prefix, i );
  33. i++;
  34. }
  35. }
  36.  
  37. function flatten( obj ){
  38. var out = {};
  39. flattenObject( obj, out, '' );
  40. return out;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement