When you want array.some but not array.every
Useful when you need to determine "partially" selected states - like partially selecting tree nodes when some but not all child nodes are checked.
In fact, the idea originated while building a feature for my own react-dropdown-tree-select component.
array.some returns true when at least one element matches. array.every returns true when all elements match. array.some
will also return true when array.every
returns true.
array.partial
is something in between. It returns true
only, and only when some (but not all) elements match. If all elements match, then it'll return false
.
This can also be achieved with array.some && !array.every
if you don't mind iterating over the array twice. This module does it with one iteration over the array.
npm install array.partial
const partial = require('array.partial')
partial(array, predicate)
Return true if and only if some elements pass the check, otherwise false.
Type: Array
- Input array
Type: Function
- A predicate, to test each element of the array. This is called with the following arguments:
element
- The current element being processed in the array
index
(Optional) - The index of the current element being processed in the array.
array
(Optional) - The array filter was called upon.
const partial = require('array.partial')
const myArr = [{id: 'a1', checked: true}, {id: 'a2', checked: false}]
partial(myArr, x => x.checked) // -> returns true
// ...
const myArr = [{id: 'a1', checked: true}, {id: 'a2', checked: true}]
partial(myArr, x => x.checked) // -> returns false
// ...
const myArr = [{id: 'a1', checked: false}, {id: 'a2', checked: false}]
partial(myArr, x => x.checked) // -> returns false
MIT © Hrusikesh Panda