code: function arrayFunction(item, index) {
        return function(data, cb) {
          if (iterator.length === 2) {
            iterator(item, cb);
          } else if (iterator.length === 3) {
            iterator(item, index, cb);
          } else {
            iterator(item, index, data, cb);
          }
        };
      }
docs: TODO: discuss convention for iterator function signatures. trying to achieve a combination of underscore and node.js callback style