foop
Version:
interfaces that describe their intentions.
33 lines (27 loc) • 2.71 kB
JavaScript
var size = require('../../util/size')
/**
* A specialized version of `reduceRight` for arrays.
*
* @since 5.0.0-beta.7.2
*
* @param {Array} [array] The array to iterate over.
* @param {Function} iteratee The function invoked per iteration.
* @param {*} [accumulator] The initial value.
* @param {boolean} [initAccum] Specify using the last element of `array` as
* the initial value.
* @return {*} Returns the accumulated value.
*/
function arrayReduceRight(array, iteratee, accumulator, initAccum) {
var length = size(array)
// setup
if (initAccum && length) {
accumulator = array[--length]
}
// iterate backwards
while (length--) {
accumulator = iteratee(accumulator, array[length], length, array)
}
return accumulator
}
module.exports = arrayReduceRight
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlQXJyYXlSaWdodC5qcyIsInNvdXJjZXMiOlsicmVkdWNlQXJyYXlSaWdodC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBzaXplID0gcmVxdWlyZSgnLi4vLi4vdXRpbC9zaXplJylcblxuLyoqXG4gKiBBIHNwZWNpYWxpemVkIHZlcnNpb24gb2YgYHJlZHVjZVJpZ2h0YCBmb3IgYXJyYXlzLlxuICpcbiAqIEBzaW5jZSA1LjAuMC1iZXRhLjcuMlxuICpcbiAqIEBwYXJhbSB7QXJyYXl9IFthcnJheV0gVGhlIGFycmF5IHRvIGl0ZXJhdGUgb3Zlci5cbiAqIEBwYXJhbSB7RnVuY3Rpb259IGl0ZXJhdGVlIFRoZSBmdW5jdGlvbiBpbnZva2VkIHBlciBpdGVyYXRpb24uXG4gKiBAcGFyYW0geyp9IFthY2N1bXVsYXRvcl0gVGhlIGluaXRpYWwgdmFsdWUuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtpbml0QWNjdW1dIFNwZWNpZnkgdXNpbmcgdGhlIGxhc3QgZWxlbWVudCBvZiBgYXJyYXlgIGFzXG4gKiAgdGhlIGluaXRpYWwgdmFsdWUuXG4gKiBAcmV0dXJuIHsqfSBSZXR1cm5zIHRoZSBhY2N1bXVsYXRlZCB2YWx1ZS5cbiAqL1xuZnVuY3Rpb24gYXJyYXlSZWR1Y2VSaWdodChhcnJheSwgaXRlcmF0ZWUsIGFjY3VtdWxhdG9yLCBpbml0QWNjdW0pIHtcbiAgbGV0IGxlbmd0aCA9IHNpemUoYXJyYXkpXG5cbiAgLy8gc2V0dXBcbiAgaWYgKGluaXRBY2N1bSAmJiBsZW5ndGgpIHtcbiAgICBhY2N1bXVsYXRvciA9IGFycmF5Wy0tbGVuZ3RoXVxuICB9XG5cbiAgLy8gaXRlcmF0ZSBiYWNrd2FyZHNcbiAgd2hpbGUgKGxlbmd0aC0tKSB7XG4gICAgYWNjdW11bGF0b3IgPSBpdGVyYXRlZShhY2N1bXVsYXRvciwgYXJyYXlbbGVuZ3RoXSwgbGVuZ3RoLCBhcnJheSlcbiAgfVxuXG4gIHJldHVybiBhY2N1bXVsYXRvclxufVxuXG5tb2R1bGUuZXhwb3J0cyA9IGFycmF5UmVkdWNlUmlnaHRcbiJdLCJuYW1lcyI6WyJjb25zdCIsImxldCJdLCJtYXBwaW5ncyI6IkFBQUFBLEdBQUssQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7OztBQWN2QyxTQUFTLGdCQUFnQixDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRTtFQUNqRUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDOzs7RUFHeEIsSUFBSSxTQUFTLElBQUksTUFBTSxFQUFFO0lBQ3ZCLFdBQVcsR0FBRyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUM7R0FDOUI7OztFQUdELE9BQU8sTUFBTSxFQUFFLEVBQUU7SUFDZixXQUFXLEdBQUcsUUFBUSxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQztHQUNsRTs7RUFFRCxPQUFPLFdBQVc7Q0FDbkI7O0FBRUQsTUFBTSxDQUFDLE9BQU8sR0FBRyxnQkFBZ0I7In0=