Skip to content

Latest commit

 

History

History
76 lines (44 loc) · 2.55 KB

README.md

File metadata and controls

76 lines (44 loc) · 2.55 KB

array.partial Build Status

npm npm bundle size (minified + gzip)


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