array.partial
v1.0.5
Published
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.
Downloads
142,072
Readme
array.partial
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.
Why
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.
Install
npm install array.partial
Usage
const partial = require('array.partial')
partial(array, predicate)
API
partial(array, predicate)
Return true if and only if some elements pass the check, otherwise false.
array
Type: Array
- Input array
predicate
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.
Examples
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
License
MIT © Hrusikesh Panda