输入自已字符串数组,要求输出一个对象 该对象包含每个字符串出现的次数;
代码如下 求解这段代码的意思
function reduce(arr, fn, initial) {
return (function reduceOne(index, value) {
if (index > arr.length - 1) return value // end condition
return reduceOne(index + 1, fn(value, arr[index], index, arr)) // calculate & pass values to next step
})(0, initial) // IIFE. kick off recursion with initial values
}
module.exports = reduce
reduce函数对数组中的每一个元素执行指定的函数fn,这个函数fn要求传入的有前一次函数调用的结果,当前迭代元素值,当前迭代元素在原数组中的位置及原始数组,fn函数要返回计算结果作为下一次迭代的第1个参数
等价为==>