rikukissa
7/23/2013 - 11:19 AM

Object recursion, requires underscore.js

Object recursion, requires underscore.js

var walk = function(obj, iterator) {
  for(i in obj) {
    if(_.isObject(obj[i]) && !_.isArray(obj[i]) && !_.isFunction(obj[i])) {
      walk(obj[i], iterator);
      continue;
    } 
    iterator(obj[i]);
  }
};

var obj = {
  a: 1,
  b: 2,
  c: {
    d: {
      e: 'e'
    },
    f: 2,
    g: 'foobar',
    h: null,
    i: function() {}
  }
};

walk(obj, function(item) {
  console.log(item);
});

// 1
// 2
// e
// 2
// foobar
// null
// function () {}