rubico
Version:
[a]synchronous functional programming
33 lines (31 loc) • 673 B
JavaScript
/**
* @name arrayFilterByConditions
*
* @synopsis
* ```coffeescript [specscript]
* arrayFilterByConditions(
* array Array,
* result Array,
* index number,
* conditions Array<boolean>,
* ) -> result
* ```
*
* @description
* Filter an array by a boolean array of conditions
*
* @TODO switch positions of index and conditions
*/
const arrayFilterByConditions = function (
array, result, index, conditions,
) {
const arrayLength = array.length
let conditionsIndex = -1
while (++index < arrayLength) {
if (conditions[++conditionsIndex]) {
result.push(array[index])
}
}
return result
}
module.exports = arrayFilterByConditions