mirror of
https://github.com/nodejs/node.git
synced 2025-08-17 22:58:52 +02:00

PR-URL: https://github.com/nodejs/io.js/pull/2286 Reviewed-By: Roman Reiss <me@silverwind.io>
20 lines
702 B
JavaScript
20 lines
702 B
JavaScript
var bindCallback = require('./bindCallback'),
|
|
isArray = require('../lang/isArray');
|
|
|
|
/**
|
|
* Creates a function for `_.forEach` or `_.forEachRight`.
|
|
*
|
|
* @private
|
|
* @param {Function} arrayFunc The function to iterate over an array.
|
|
* @param {Function} eachFunc The function to iterate over a collection.
|
|
* @returns {Function} Returns the new each function.
|
|
*/
|
|
function createForEach(arrayFunc, eachFunc) {
|
|
return function(collection, iteratee, thisArg) {
|
|
return (typeof iteratee == 'function' && thisArg === undefined && isArray(collection))
|
|
? arrayFunc(collection, iteratee)
|
|
: eachFunc(collection, bindCallback(iteratee, thisArg, 3));
|
|
};
|
|
}
|
|
|
|
module.exports = createForEach;
|