Files
lodash/overEvery.js
2017-01-11 12:11:56 -08:00

34 lines
750 B
JavaScript

import apply from './.internal/apply.js';
import arrayEvery from './.internal/arrayEvery.js';
/**
* Creates a function that checks if **all** of the `predicates` return
* truthy when invoked with the arguments it receives.
*
* @since 4.0.0
* @category Util
* @param {Function[]} [predicates=[identity]]
* The predicates to check.
* @returns {Function} Returns the new function.
* @example
*
* const func = overEvery([Boolean, isFinite]);
*
* func('1');
* // => true
*
* func(null);
* // => false
*
* func(NaN);
* // => false
*/
function overEvery(iteratees) {
return function(...args) {
const thisArg = this;
return arrayEvery(iteratees, iteratee => apply(iteratee, thisArg, args));
};
}
export default overEvery;