Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mrchief/array.partial
When you want array.some but not array.every
https://github.com/mrchief/array.partial
array every filter partial some
Last synced: 10 days ago
JSON representation
When you want array.some but not array.every
- Host: GitHub
- URL: https://github.com/mrchief/array.partial
- Owner: mrchief
- License: mit
- Created: 2018-03-25T02:50:07.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-06-27T02:57:33.000Z (over 5 years ago)
- Last Synced: 2024-11-29T03:44:49.386Z (29 days ago)
- Topics: array, every, filter, partial, some
- Language: JavaScript
- Homepage:
- Size: 43 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# array.partial [![Build Status](https://travis-ci.org/mrchief/array.partial.svg?branch=master)](https://travis-ci.org/mrchief/array.partial)
[![npm](https://img.shields.io/npm/v/array.partial.svg)](https://www.npmjs.com/package/array.partial)
[![npm bundle size (minified + gzip)](https://img.shields.io/bundlephobia/minzip/array.partial.svg)](https://bundlephobia.com/result?p=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](https://github.com/dowjones/react-dropdown-tree-select) component.
## Why
[array.some](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/some) returns true when _at least one_ element matches. [array.every](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/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](https://about.me/hkpanda)