each.js 529 B

123456789101112131415161718
  1. var isArrLike = require('./isArrLike');
  2. var keys = require('./keys');
  3. var optimizeCb = require('./optimizeCb');
  4. exports = function(obj, iterator, ctx) {
  5. iterator = optimizeCb(iterator, ctx);
  6. var i, len;
  7. if (isArrLike(obj)) {
  8. for (i = 0, len = obj.length; i < len; i++) iterator(obj[i], i, obj);
  9. } else {
  10. var _keys = keys(obj);
  11. for (i = 0, len = _keys.length; i < len; i++) {
  12. iterator(obj[_keys[i]], _keys[i], obj);
  13. }
  14. }
  15. return obj;
  16. };
  17. module.exports = exports;