@newdash/newdash
Version:
javascript/typescript utility library
64 lines (63 loc) • 2.33 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.every = void 0;
const arrayEvery_1 = __importDefault(require("./.internal/arrayEvery"));
const baseEvery_1 = __importDefault(require("./.internal/baseEvery"));
const getIteratee_1 = __importDefault(require("./.internal/getIteratee"));
const isIterateeCall_1 = __importDefault(require("./.internal/isIterateeCall"));
const isArray_1 = __importDefault(require("./isArray"));
/**
* Checks if `predicate` returns truthy for **all** elements of `collection`.
* Iteration is stopped once `predicate` returns falsey. The predicate is
* invoked with three arguments: (value, index|key, collection).
*
* **Note:** This method returns `true` for
* [empty collections](https://en.wikipedia.org/wiki/Empty_set) because
* [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of
* elements of empty collections.
*
* @since 5.3.0
* @category Collection
* @param collection The collection to iterate over.
* @param predicate The function invoked per iteration.
* @param guard Enables use as an iteratee for methods like `map`.
* @returns Returns `true` if all elements pass the predicate check,
* else `false`.
* @example
*
* ```js
* every([true, 1, null, 'yes'], Boolean);
* // => false
*
* var users = [
* { 'user': 'barney', 'age': 36, 'active': false },
* { 'user': 'fred', 'age': 40, 'active': false }
* ];
*
* // The `matches` iteratee shorthand.
* every(users, { 'user': 'barney', 'active': false });
* // => false
*
* // The `matchesProperty` iteratee shorthand.
* every(users, ['active', false]);
* // => true
*
* // The `property` iteratee shorthand.
* every(users, 'active');
* // => false
* ```
*/
function every(collection, predicate, guard) {
if (guard && (0, isIterateeCall_1.default)(collection, predicate, guard)) {
predicate = undefined;
}
if ((0, isArray_1.default)(collection)) {
return (0, arrayEvery_1.default)(collection, (0, getIteratee_1.default)(predicate, 3));
}
return (0, baseEvery_1.default)(collection, (0, getIteratee_1.default)(predicate, 3));
}
exports.every = every;
exports.default = every;