UNPKG

foop

Version:

interfaces that describe their intentions.

42 lines (36 loc) 3.49 kB
var isArrayLike = require('../../is/arrayLike') var isNill = require('../../is/nullOrUndefined') var baseForOwn = require('./baseForOwn') /** * The base implementation of `forEach`. * @since 5.0.0-beta.6 * @memberOf loop * * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @return {Array|Object} Returns `collection`. * * @see https://github.com/lodash/lodash/blob/master/.internal/baseEach.js * */ function baseEach(collection, iteratee) { if (isNill(collection)) { return collection } else if (!isArrayLike(collection)) { return baseForOwn(collection, iteratee) } // @TODO toObj, length var length = collection.length var iterable = Object(collection) var index = -1 while (++index < length) { // stop when they return false if (iteratee(iterable[index], index, iterable) === false) { break } } return collection } module.exports = baseEach //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZUVhY2guanMiLCJzb3VyY2VzIjpbImJhc2VFYWNoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IGlzQXJyYXlMaWtlID0gcmVxdWlyZSgnLi4vLi4vaXMvYXJyYXlMaWtlJylcbmNvbnN0IGlzTmlsbCA9IHJlcXVpcmUoJy4uLy4uL2lzL251bGxPclVuZGVmaW5lZCcpXG5jb25zdCBiYXNlRm9yT3duID0gcmVxdWlyZSgnLi9iYXNlRm9yT3duJylcblxuLyoqXG4gKiBUaGUgYmFzZSBpbXBsZW1lbnRhdGlvbiBvZiBgZm9yRWFjaGAuXG4gKiBAc2luY2UgNS4wLjAtYmV0YS42XG4gKiBAbWVtYmVyT2YgbG9vcFxuICpcbiAqIEBwYXJhbSB7QXJyYXl8T2JqZWN0fSBjb2xsZWN0aW9uIFRoZSBjb2xsZWN0aW9uIHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcmV0dXJuIHtBcnJheXxPYmplY3R9IFJldHVybnMgYGNvbGxlY3Rpb25gLlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2xvZGFzaC9sb2Rhc2gvYmxvYi9tYXN0ZXIvLmludGVybmFsL2Jhc2VFYWNoLmpzXG4gKlxuICovXG5mdW5jdGlvbiBiYXNlRWFjaChjb2xsZWN0aW9uLCBpdGVyYXRlZSkge1xuICBpZiAoaXNOaWxsKGNvbGxlY3Rpb24pKSB7XG4gICAgcmV0dXJuIGNvbGxlY3Rpb25cbiAgfVxuICBlbHNlIGlmICghaXNBcnJheUxpa2UoY29sbGVjdGlvbikpIHtcbiAgICByZXR1cm4gYmFzZUZvck93bihjb2xsZWN0aW9uLCBpdGVyYXRlZSlcbiAgfVxuXG4gIC8vIEBUT0RPIHRvT2JqLCBsZW5ndGhcbiAgY29uc3QgbGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGhcbiAgY29uc3QgaXRlcmFibGUgPSBPYmplY3QoY29sbGVjdGlvbilcbiAgbGV0IGluZGV4ID0gLTFcblxuICB3aGlsZSAoKytpbmRleCA8IGxlbmd0aCkge1xuICAgIC8vIHN0b3Agd2hlbiB0aGV5IHJldHVybiBmYWxzZVxuICAgIGlmIChpdGVyYXRlZShpdGVyYWJsZVtpbmRleF0sIGluZGV4LCBpdGVyYWJsZSkgPT09IGZhbHNlKSB7XG4gICAgICBicmVha1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBjb2xsZWN0aW9uXG59XG5cbm1vZHVsZS5leHBvcnRzID0gYmFzZUVhY2hcbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxXQUFXLEdBQUcsT0FBTyxDQUFDLG9CQUFvQixDQUFDO0FBQ2pEQSxHQUFLLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQywwQkFBMEIsQ0FBQztBQUNsREEsR0FBSyxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7OztBQWMxQyxTQUFTLFFBQVEsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFO0VBQ3RDLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQ3RCLE9BQU8sVUFBVTtHQUNsQjtPQUNJLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLEVBQUU7SUFDakMsT0FBTyxVQUFVLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQztHQUN4Qzs7O0VBR0RBLEdBQUssQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLE1BQU07RUFDaENBLEdBQUssQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQztFQUNuQ0MsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7O0VBRWQsT0FBTyxFQUFFLEtBQUssR0FBRyxNQUFNLEVBQUU7O0lBRXZCLElBQUksUUFBUSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLEtBQUssS0FBSyxFQUFFO01BQ3hELEtBQUs7S0FDTjtHQUNGOztFQUVELE9BQU8sVUFBVTtDQUNsQjs7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLFFBQVE7In0=