Spaces:
Runtime error
Runtime error
var arrayEach = require('./_arrayEach'), | |
baseEach = require('./_baseEach'), | |
castFunction = require('./_castFunction'), | |
isArray = require('./isArray'); | |
/** | |
* Iterates over elements of `collection` and invokes `iteratee` for each element. | |
* The iteratee is invoked with three arguments: (value, index|key, collection). | |
* Iteratee functions may exit iteration early by explicitly returning `false`. | |
* | |
* **Note:** As with other "Collections" methods, objects with a "length" | |
* property are iterated like arrays. To avoid this behavior use `_.forIn` | |
* or `_.forOwn` for object iteration. | |
* | |
* @static | |
* @memberOf _ | |
* @since 0.1.0 | |
* @alias each | |
* @category Collection | |
* @param {Array|Object} collection The collection to iterate over. | |
* @param {Function} [iteratee=_.identity] The function invoked per iteration. | |
* @returns {Array|Object} Returns `collection`. | |
* @see _.forEachRight | |
* @example | |
* | |
* _.forEach([1, 2], function(value) { | |
* console.log(value); | |
* }); | |
* // => Logs `1` then `2`. | |
* | |
* _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { | |
* console.log(key); | |
* }); | |
* // => Logs 'a' then 'b' (iteration order is not guaranteed). | |
*/ | |
function forEach(collection, iteratee) { | |
var func = isArray(collection) ? arrayEach : baseEach; | |
return func(collection, castFunction(iteratee)); | |
} | |
module.exports = forEach; | |