rubico
Version:
[a]synchronous functional programming
31 lines (29 loc) • 644 B
JavaScript
/**
* @name arrayExtendMap
*
* @synopsis
* ```coffeescript [specscript]
* any -> value; any -> mapped
*
* arrayExtendMap(
* array Array<mapped>,
* values Array<value>,
* valuesIndex number,
* valuesMapper value=>mapped,
* ) -> array
* ```
*
* @description
* `arrayExtend` while mapping
*/
const arrayExtendMap = function (
array, values, valuesMapper, valuesIndex,
) {
const valuesLength = values.length
let arrayIndex = array.length - 1
while (++valuesIndex < valuesLength) {
array[++arrayIndex] = valuesMapper(values[valuesIndex], valuesIndex, array)
}
return array
}
module.exports = arrayExtendMap