# array-reduce-x

> Reduce an array (from left to right) to a single value.

Latest version **3.1.2** (published 2019-08-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install array-reduce-x
pnpm add array-reduce-x
yarn add array-reduce-x
bun add array-reduce-x
```

## Health

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

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.1.2 |
| Published | 2019-08-28 |
| First published | 2017-08-09 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Node | >=8.11.4 |
| Dependencies | 8 |
| Unpacked size | 285.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Graham Fairweather |
| Maintainers | xotic750 |
| Keywords | Array, reduce, module, javascript, nodejs, browser |

## Links

- npm: https://www.npmjs.com/package/array-reduce-x
- Repository: https://github.com/Xotic750/array-reduce-x
- Issues: https://github.com/Xotic750/array-reduce-x/issues
- npm.io page: https://npm.io/package/array-reduce-x

## Dependencies (8)

- [attempt-x](https://npm.io/package/attempt-x.md) ^2.1.2
- [to-length-x](https://npm.io/package/to-length-x.md) ^4.2.2
- [to-object-x](https://npm.io/package/to-object-x.md) ^2.2.1
- [to-boolean-x](https://npm.io/package/to-boolean-x.md) ^2.1.1
- [simple-methodize-x](https://npm.io/package/simple-methodize-x.md) ^1.0.4
- [assert-is-function-x](https://npm.io/package/assert-is-function-x.md) ^3.1.2
- [split-if-boxed-bug-x](https://npm.io/package/split-if-boxed-bug-x.md) ^2.1.2
- [require-object-coercible-x](https://npm.io/package/require-object-coercible-x.md) ^2.1.1

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 3.1.2 (latest) — 2019-08-28
- 3.1.1 — 2019-08-20
- 3.1.0 — 2019-08-14
- 3.0.17 — 2019-08-05
- 3.0.16 — 2019-07-31
- 3.0.15 — 2019-07-27
- 3.0.14 — 2019-07-27
- 3.0.13 — 2019-07-26
- 3.0.12 — 2019-07-25
- 3.0.11 — 2019-07-24
- 3.0.10 — 2019-07-24
- 3.0.9 — 2019-07-22
- 3.0.8 — 2019-07-21
- 3.0.7 — 2019-07-19
- 3.0.6 — 2019-07-18
- … 14 more at https://npm.io/package/array-reduce-x/versions

## README

<a
  href="https://travis-ci.org/Xotic750/array-reduce-x"
  title="Travis status">
<img
  src="https://travis-ci.org/Xotic750/array-reduce-x.svg?branch=master"
  alt="Travis status" height="18">
</a>
<a
  href="https://david-dm.org/Xotic750/array-reduce-x"
  title="Dependency status">
<img src="https://david-dm.org/Xotic750/array-reduce-x/status.svg"
  alt="Dependency status" height="18"/>
</a>
<a
  href="https://david-dm.org/Xotic750/array-reduce-x?type=dev"
  title="devDependency status">
<img src="https://david-dm.org/Xotic750/array-reduce-x/dev-status.svg"
  alt="devDependency status" height="18"/>
</a>
<a
  href="https://badge.fury.io/js/array-reduce-x"
  title="npm version">
<img src="https://badge.fury.io/js/array-reduce-x.svg"
  alt="npm version" height="18">
</a>
<a
  href="https://www.jsdelivr.com/package/npm/array-reduce-x"
  title="jsDelivr hits">
<img src="https://data.jsdelivr.com/v1/package/npm/array-reduce-x/badge?style=rounded"
  alt="jsDelivr hits" height="18">
</a>
<a
  href="https://bettercodehub.com/results/Xotic750/array-reduce-x"
  title="bettercodehub score">
<img src="https://bettercodehub.com/edge/badge/Xotic750/array-reduce-x?branch=master"
  alt="bettercodehub score" height="18">
</a>
<a
  href="https://coveralls.io/github/Xotic750/array-reduce-x?branch=master"
  title="Coverage Status">
<img src="https://coveralls.io/repos/github/Xotic750/array-reduce-x/badge.svg?branch=master"
  alt="Coverage Status" height="18">
</a>

<a name="module_array-reduce-x"></a>

## array-reduce-x

Reduce an array (from left to right) to a single value.

<a name="exp_module_array-reduce-x--module.exports"></a>

### `module.exports` ⇒ <code>\*</code> ⏏

This method applies a function against an accumulator and each element in the
array (from left to right) to reduce it to a single value.

**Kind**: Exported member  
**Returns**: <code>\*</code> - The value that results from the reduction.  
**Throws**:

- <code>TypeError</code> If array is null or undefined.
- <code>TypeError</code> If callBack is not a function.
- <code>TypeError</code> If called on an empty array without an initial value.

| Param          | Type                  | Description                                                                                                                                                                                                                |
| -------------- | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| array          | <code>array</code>    | The array to iterate over.                                                                                                                                                                                                 |
| callBack       | <code>function</code> | Function to execute for each element.                                                                                                                                                                                      |
| [initialValue] | <code>\*</code>       | Value to use as the first argument to the first call of the callback. If no initial value is supplied, the first element in the array will be used. Calling reduce on an empty array without an initial value is an error. |

**Example**

```js
import reduce from 'array-reduce-x';

console.log(
  reduce(
    [0, 1, 2, 3],
    function(a, b) {
      return a + b;
    },
    0,
  ),
); // sum is 6
```

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