IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> JavaScript 数组API重学系列记录 -> 正文阅读

[JavaScript知识库]JavaScript 数组API重学系列记录

目录

Array API - reduce()

语法

参数说明

返回值说明

应用


Array API - reduce()

 ? ? ? ?const array1 = [1, 2, 3, 4];
 ? ? ? ?const reducer = (previousValue, currentValue) => previousValue + currentValue;
?
 ? ? ? ?// 1 + 2 + 3 + 4
 ? ? ? ?console.log(array1.reduce(reducer));
 ? ? ? ?// expected output: 10
?
 ? ? ? ?// 5 + 1 + 2 + 3 + 4
 ? ? ? ?console.log(array1.reduce(reducer, 5));
 ? ? ? ?// expected output: 15

语法

arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])

参数说明

  • callback() 回调函数,

    • 作用:执行数组中每一项元素

    • 参数

      • accumulator : 累积回调函数的返回值 / initialValue值 (已指定情况)

      • currentValue: 正在操作的元素

      • index

      • array

  • initialValue

    • 作用:callback()首次调用时作为累计器的初始值 ( 指定初始值时 accumulator = initialValue )

      • 初始值数据类型: 根据具体需求 (参考应用-案例三

        • Number

        • Object

        • …数据类型

    • 未指定initialValue

      • 数组元素 > 1

        • 默认使用数组中第一个元素

        • let arr = ["1"]
          //预期 返回数组唯一元素:字符串 '1'
          console.log(arr.reduce((acc,current)=>{
            console.log('执行了 callback()')
          }))
      • 空数组 调用 callback()

        空数组抛出错误

      • 数组仅有一个元素

        • 直接返回此元素 不执行callback()

    • 指定 initialValue

      • 空数组调用callback()

        let arr = []
        //预期 返回initialValue值
        console.log(arr.reduce((acc,current)=>{
         ?console.log('执行了 callback()')
        },2))

返回值说明

  • 函数累计处理结果

  • 最后一次执行 callback() 的返回值

应用 (完善ing)

  • 案例一:求和

    // 数组求和
    let sumArray = [1,2,3,4,5]
    let sum = sumArray.reduce((acc,eachItem) => {
     ?//预期 
     ?console.log('acc的值:' + acc); //总共 输出5次
     ?return acc + eachItem
    },0)
  • 案例二:统计某一元素出现次数

    let amountArray = ["狗曦曦", "狗曦曦", "玉玉", "喵喵"]
    let dogAmount = amountArray.reduce((acc, item) => {
     ?if (item === "狗曦曦") {
     ? ?console.log("找到狗曦曦了");
     ? ?acc++;
      }
     ?return acc;
    },0)
  • 案例三:统计所有元素出现次数

    //统计所有元素出现个数
    let allArray = ["狗曦曦", "狗曦曦", "玉玉", "喵喵"]
    let allAmount = amountArray.reduce((acc, item) => {
     ?if (item in acc) {
     ? ?acc[item]++;
      } else {
     ? ?acc[item] = 1
      }
     ?return acc
    }, {})
    /*
     ?  预期结果
     ?  {
     ? ? ?  "狗曦曦": 2,
     ? ? ?  "玉玉": 1,
     ? ? ?  "喵喵": 1
     ?  }
    */
    console.log(allAmount);
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-12-04 13:21:37  更:2021-12-04 13:22:08 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 7:17:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码