import apply from './.internal/apply.js' import arraySome from './.internal/arraySome.js' /** * Creates a function that checks if **any** 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 = overSome([Boolean, isFinite]) * * func('1') * // => true * * func(null) * // => true * * func(NaN) * // => false */ function overSome(iteratees) { return function(...args) { const thisArg = this return arraySome(iteratees, iteratee => apply(iteratee, thisArg, args)) } } export default overSome