Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var handlers = {
- Object: flattenObject,
- Array: flattenArray,
- };
- function router(val, store, prefix, i ) {
- var kind, handler, key = prefix? prefix + '.'+ i : i; ;
- if( val === undefined || val === null ){
- return store[ key ] = val;
- }
- kind = val.constructor.name;
- handler = handlers[kind];
- if (handler) {
- return handler(val, store, key);
- }
- return store[ key ] = val;
- }
- function flattenObject(obj, store, prefix) {
- var i, val, kind, handler;
- for (i in obj) {
- router( obj[i], store, prefix, i );
- }
- }
- function flattenArray(obj, store, prefix) {
- var i=0, l = arr.length;
- while (i < l) {
- router( arr[i], store, prefix, i );
- i++;
- }
- }
- function flatten( obj ){
- var out = {};
- flattenObject( obj, out, '' );
- return out;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement