foop
Version:
interfaces that describe their intentions.
59 lines (56 loc) • 4.6 kB
JavaScript
var preferExistingMethod = require('../../fp/preferExistingMethod')
var curry = require('../../fp/curry')
/**
* Iterate over an input `list`, calling a provided function `fn` for each
* element in the list.
*
* `fn` receives one argument: *(value)*.
*
* Note: `R.forEach` does not skip deleted or unassigned indices (sparse
* arrays), unlike the native `Array.prototype.forEach` method. For more
* details on this behavior, see:
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach#Description
*
* Also note that, unlike `Array.prototype.forEach`, Ramda's `forEach` returns
* the original array. In some libraries this function is named `each`.
*
* Dispatches to the `forEach` method of the second argument, if present.
*
* @memberOf fp
* @since 5.0.0-beta.6
* @curried 2
*
* @param {Function} fn The function to invoke. Receives one argument, `value`.
* @param {Array} list The list to iterate over.
* @return {Array} The original list.
*
* @func
* @fork v0.1.1
* @category List
* @sig (a -> *) -> [a] -> [a]
* @symb R.forEach(f, [a, b, c]) = [a, b, c]
*
* @see addIndex
*
* @example
*
* var printXPlusFive = x => console.log(x + 5);
* forEach(printXPlusFive, [1, 2, 3]); //=> [1, 2, 3]
* // logs 6
* // logs 7
* // logs 8
*
*
*/
function _forEach(fn, list) {
var len = list.length
var index = 0
while (index < len) {
fn(list[index++])
// fn(list[index])
// index += 1
}
return list
}
module.exports = curry(2, preferExistingMethod('forEach', _forEach))
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiX2VhY2guanMiLCJzb3VyY2VzIjpbIl9lYWNoLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IHByZWZlckV4aXN0aW5nTWV0aG9kID0gcmVxdWlyZSgnLi4vLi4vZnAvcHJlZmVyRXhpc3RpbmdNZXRob2QnKVxuY29uc3QgY3VycnkgPSByZXF1aXJlKCcuLi8uLi9mcC9jdXJyeScpXG5cbi8qKlxuICogSXRlcmF0ZSBvdmVyIGFuIGlucHV0IGBsaXN0YCwgY2FsbGluZyBhIHByb3ZpZGVkIGZ1bmN0aW9uIGBmbmAgZm9yIGVhY2hcbiAqIGVsZW1lbnQgaW4gdGhlIGxpc3QuXG4gKlxuICogYGZuYCByZWNlaXZlcyBvbmUgYXJndW1lbnQ6ICoodmFsdWUpKi5cbiAqXG4gKiBOb3RlOiBgUi5mb3JFYWNoYCBkb2VzIG5vdCBza2lwIGRlbGV0ZWQgb3IgdW5hc3NpZ25lZCBpbmRpY2VzIChzcGFyc2VcbiAqIGFycmF5cyksIHVubGlrZSB0aGUgbmF0aXZlIGBBcnJheS5wcm90b3R5cGUuZm9yRWFjaGAgbWV0aG9kLiBGb3IgbW9yZVxuICogZGV0YWlscyBvbiB0aGlzIGJlaGF2aW9yLCBzZWU6XG4gKiBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9KYXZhU2NyaXB0L1JlZmVyZW5jZS9HbG9iYWxfT2JqZWN0cy9BcnJheS9mb3JFYWNoI0Rlc2NyaXB0aW9uXG4gKlxuICogQWxzbyBub3RlIHRoYXQsIHVubGlrZSBgQXJyYXkucHJvdG90eXBlLmZvckVhY2hgLCBSYW1kYSdzIGBmb3JFYWNoYCByZXR1cm5zXG4gKiB0aGUgb3JpZ2luYWwgYXJyYXkuIEluIHNvbWUgbGlicmFyaWVzIHRoaXMgZnVuY3Rpb24gaXMgbmFtZWQgYGVhY2hgLlxuICpcbiAqIERpc3BhdGNoZXMgdG8gdGhlIGBmb3JFYWNoYCBtZXRob2Qgb2YgdGhlIHNlY29uZCBhcmd1bWVudCwgaWYgcHJlc2VudC5cbiAqXG4gKiBAbWVtYmVyT2YgZnBcbiAqIEBzaW5jZSA1LjAuMC1iZXRhLjZcbiAqIEBjdXJyaWVkIDJcbiAqXG4gKiBAcGFyYW0ge0Z1bmN0aW9ufSBmbiBUaGUgZnVuY3Rpb24gdG8gaW52b2tlLiBSZWNlaXZlcyBvbmUgYXJndW1lbnQsIGB2YWx1ZWAuXG4gKiBAcGFyYW0ge0FycmF5fSBsaXN0IFRoZSBsaXN0IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEByZXR1cm4ge0FycmF5fSBUaGUgb3JpZ2luYWwgbGlzdC5cbiAqXG4gKiBAZnVuY1xuICogQGZvcmsgdjAuMS4xXG4gKiBAY2F0ZWdvcnkgTGlzdFxuICogQHNpZyAoYSAtPiAqKSAtPiBbYV0gLT4gW2FdXG4gKiBAc3ltYiBSLmZvckVhY2goZiwgW2EsIGIsIGNdKSA9IFthLCBiLCBjXVxuICpcbiAqIEBzZWUgYWRkSW5kZXhcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqICAgICAgdmFyIHByaW50WFBsdXNGaXZlID0geCA9PiBjb25zb2xlLmxvZyh4ICsgNSk7XG4gKiAgICAgIGZvckVhY2gocHJpbnRYUGx1c0ZpdmUsIFsxLCAyLCAzXSk7IC8vPT4gWzEsIDIsIDNdXG4gKiAgICAgIC8vIGxvZ3MgNlxuICogICAgICAvLyBsb2dzIDdcbiAqICAgICAgLy8gbG9ncyA4XG4gKlxuICpcbiAqL1xuZnVuY3Rpb24gX2ZvckVhY2goZm4sIGxpc3QpIHtcbiAgY29uc3QgbGVuID0gbGlzdC5sZW5ndGhcbiAgbGV0IGluZGV4ID0gMFxuICB3aGlsZSAoaW5kZXggPCBsZW4pIHtcbiAgICBmbihsaXN0W2luZGV4KytdKVxuICAgIC8vIGZuKGxpc3RbaW5kZXhdKVxuICAgIC8vIGluZGV4ICs9IDFcbiAgfVxuICByZXR1cm4gbGlzdFxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGN1cnJ5KDIsIHByZWZlckV4aXN0aW5nTWV0aG9kKCdmb3JFYWNoJywgX2ZvckVhY2gpKVxuIl0sIm5hbWVzIjpbImNvbnN0IiwibGV0Il0sIm1hcHBpbmdzIjoiQUFBQUEsR0FBSyxDQUFDLG9CQUFvQixHQUFHLE9BQU8sQ0FBQywrQkFBK0IsQ0FBQztBQUNyRUEsR0FBSyxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNEN2QyxTQUFTLFFBQVEsQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFO0VBQzFCQSxHQUFLLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNO0VBQ3ZCQyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUM7RUFDYixPQUFPLEtBQUssR0FBRyxHQUFHLEVBQUU7SUFDbEIsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDOzs7R0FHbEI7RUFDRCxPQUFPLElBQUk7Q0FDWjs7QUFFRCxNQUFNLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDLEVBQUUsb0JBQW9CLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDOyJ9