reduce() 方法对数组中的每个元素执行一个由您提供的函数(升序执行:从左到右),将其结果汇总为单个返回值。
函数接受以下参数
1.累积变量,默认数组的第一个成员
2.当前变量,默认数组的第二个成员
3.当前位置(0开始)
4.原数组
[0, 1, 2, 3, 4].reduce(function(accumulator, currentValue, currentIndex, array){
return accumulator + currentValue;
});
callback 被调用四次,每次调用的参数和返回值如下表:
image.pngfunction 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){},{})
最后的{}是初始化,如果没有提供初始值,则将使用数组中的第一个元素
网友评论