Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ndhoule/foldl

Apply a function to each value in a collection, accumulating the results into a single return value.
https://github.com/ndhoule/foldl

Last synced: 13 days ago
JSON representation

Apply a function to each value in a collection, accumulating the results into a single return value.

Awesome Lists containing this project

README

        

# foldl [![CI][ci-badge]][ci-link]

Apply a function to each value in a collection, accumulating the results into a single return value.

## Installation

```sh
$ component install ndhoule/foldl
$ npm install @ndhoule/foldl
```

## API

### `reduce(iterator : Function, accumulator : *, collection : Array|Object)`

Reduces all the values in a collection down into a single value. Does so by iterating through the collection from left to right, repeatedly calling an `iterator` function and passing to it four arguments: `(accumulator, value, index, collection)`.

```javascript
foldl(function(total, n) {
return total + n;
}, 0, [1, 2, 3]);
//=> 6

var phonebook = { bob: '555-111-2345', tim: '655-222-6789', sheila: '655-333-1298' };

foldl(function(results, phoneNumber) {
if (phoneNumber[0] === '6') {
return results.concat(phoneNumber);
}
return results;
}, [], phonebook);
// => ['655-222-6789', '655-333-1298']
```

## License

Released under the [MIT license](LICENSE.md).

[ci-link]: https://travis-ci.org/ndhoule/foldl
[ci-badge]: https://travis-ci.org/ndhoule/foldl.svg?branch=master