美文网首页
ruduce;call}Array.prototype.redu

ruduce;call}Array.prototype.redu

作者: 实肆 | 来源:发表于2019-04-16 17:01 被阅读0次

    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.redu

          本文链接:https://www.haomeiwen.com/subject/uroliqtx.html