every
A better Array.prototype.every()
. Supports iterables, whitelist testing, and more.Installation
Requires Node.js 6.0.0 or above.npm i @lamansky/every
API
The module exports a single function.Parameters
- Bindable:
iter
(iterable) - Optional:
test
(function, array, or any): If a function is provided, iterated values will be evaluated on whethertest
returnstrue
when passed the value. If an array is provided, iterated values will be evaluated on whether they are contained in the array. If some other value is provided, iterated values will be evaluated on whether they strictly equaltest
. Iftest
is omitted, iterated values will be evaluated on whether they are truthy. - Optional: Object argument (or a value for
vacuously
):
* `vacuously` (boolean): What to return if `iter` doesn’t iterate anything. Defaults to `true`. Thiis is for consistency with [`Array.prototype.every()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/every), which interprets any test on an empty array as being [vacuously true](https://en.wikipedia.org/wiki/Vacuous_truth).
Return Values
- If
iter
doesn’t iterate anything, returnsvacuously
if set, otherwisetrue
. - Otherwise, returns
true
if every one of the iterated values ofiter
passestest
; otherwise returnsfalse
.
Example
const every = require('@lamansky/every')
const arr = [1, 2, 3]
every(arr, n => n >= 1) // true
every(arr, [1, 2, 3, 4]) // true
every(arr, n => n > 1) // false
every(arr, 1) // false
every(arr, [1, 2]) // false