UNPKG

conductor

Version:

A modern & functional JavaScript utility library

44 lines (29 loc) 1.36 kB
--- description: Execute a function for each item in a collection --- # forEach ```erlang forEach :: (Function callback, Collection collection) => undefined | Promise<undefined> ``` ## description Iterates over a collection and calls the provided callback function for each item in the collection. The callback function should have the following signature: `(Any value, Any key, Collection collection) => Any` where: * **value** is the current item's value * **key** is the item's key or index \(depending on if the collection is an `Array`, a `Set`, an `Object`, or a `Map`\). * **collection** is the collection being iterated on. {% hint style="info" %} If the collection is a `Set`, the **value** and the **key** will be equal. {% endhint %} If the callback function is _asynchronous_, `forEach` will return a `Promise` which will be resolved when all the promises generated by calling the callback function with each item in the collection are resolved. You could say that `forEach` is roughly equivalent `map`, except it returns `undefined` in the end \(ie `forEach( asyncFn, collection)` ~ `Promise.all(collection.map(asyncFn)).then(() => undefined)`\). ## examples ### basic example ```javascript import { forEach } from 'conductor' const numbers = [3, 1, 4] const log = x => console.log(x) forEach(numbers, log) // 3 // 1 // 4 ```