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字符串中首个字符

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,274评论 0 4
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 4,507评论 0 5
  • 这是16年5月份编辑的一份比较杂乱适合自己观看的学习记录文档,今天18年5月份再次想写文章,发现简书还为我保存起的...
    Jenaral阅读 2,892评论 2 9
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,161评论 1 32
  • 1.美盲是如何养成的? 2.什么叫美?为什么人与人的审美差异如此大? 3.美的原理是什么?
    蓝田暖阅读 356评论 0 0