12345678910111213141516171819202122232425262728293031323334 |
-
- function reduceRight(arr, fn, initVal) {
-
- var hasInit = arguments.length > 2;
- if (arr == null || !arr.length) {
- if (hasInit) {
- return initVal;
- } else {
- throw new Error('reduce of empty array with no initial value');
- }
- }
- var i = arr.length, result = initVal, value;
- while (--i >= 0) {
-
-
- value = arr[i];
- if (!hasInit) {
- result = value;
- hasInit = true;
- } else {
- result = fn(result, value, i, arr);
- }
- }
- return result;
- }
- module.exports = reduceRight;
|