# 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.

Latest version **1.0.5** (published 2019-06-27) · MIT license · 0 weekly downloads

## Install

```sh
npm install array.partial
pnpm add array.partial
yarn add array.partial
bun add array.partial
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.5 |
| Published | 2019-06-27 |
| First published | 2018-03-25 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >=6 |
| Dependencies | 0 |
| Unpacked size | 4.5 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Hrusikesh Panda |
| Maintainers | mrchief |
| Keywords | array, some, filter, partial, every |

## Links

- npm: https://www.npmjs.com/package/array.partial
- Repository: https://github.com/mrchief/array.partial
- Homepage: https://github.com/mrchief/array.partial#readme
- Issues: https://github.com/mrchief/array.partial/issues
- npm.io page: https://npm.io/package/array.partial

## Alternatives

- [@fortawesome/react-fontawesome](https://npm.io/package/@fortawesome/react-fontawesome.md) — 2.2M weekly downloads
- [roboto-fontface](https://npm.io/package/roboto-fontface.md) — 196.0K weekly downloads
- [@react-native-vector-icons/common](https://npm.io/package/@react-native-vector-icons/common.md) — 150.4K weekly downloads
- [@procore/core-icons](https://npm.io/package/@procore/core-icons.md) — 4.6K weekly downloads
- [@react-md/material-icons](https://npm.io/package/@react-md/material-icons.md) — 1.6K weekly downloads

## Recent versions

- 1.0.5 (latest) — 2019-06-27
- 1.0.4 — 2018-04-05
- 1.0.3 — 2018-03-25
- 1.0.2 — 2018-03-25
- 1.0.1 — 2018-03-25
- 1.0.0 — 2018-03-25

## 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)

---
_Source: https://npm.io/package/array.partial · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
