ruduce;call}Array.prototype.reduce

reduce() 方法对数组中的每个元素执行一个由您提供的函数(升序执行:从左到右),将其结果汇总为单个返回值。
函数接受以下参数
1.累积变量,默认数组的第一个成员
2.当前变量,默认数组的第二个成员
3.当前位置(0开始)
4.原数组

[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array){
  return accumulator + currentValue;
});

callback 被调用四次,每次调用的参数和返回值如下表:

image.png
function getMost(str) {
    var result = Array.prototype.reduce.call(str, function(allWords, curWord) {
        allWords[curWord] ? allWords[curWord]++ : allWords[curWord] = 1;
        return allWords;
    }, {});

    return result;
}

var result = getMost("xyzzyxyz");
console.log(result);

空字符串的boolean是fales

变量str不是数组,所以写一个方法让变量str来继承它

Array.prototype.reduce.call(str, function(allWords, curWord){},{})

最后的{}是初始化,如果没有提供初始值,则将使用数组中的第一个元素

注意

例子中不初始化空对象,最终返回的将是str字符串中首个字符

你可能感兴趣的:(ruduce;call}Array.prototype.reduce)