reduce-deep
Version:
Deep reduce an array
11 lines (10 loc) • 347 B
JavaScript
import isFlattenable from 'isflattenable';
export default function reduceDeep(array, fn, memo) {
let result = memo;
for(let i = 0; i < array.length; i++){
const value = array[i];
if (isFlattenable(value)) result = reduceDeep(value, fn, result);
else result = fn(result, value, array, i);
}
return result;
}