首页 > 其他分享 >ES6 reduce方法:示例与详解、应用场景

ES6 reduce方法:示例与详解、应用场景

时间:2024-04-02 14:58:33浏览次数:23  
标签:ES6 const 示例 元素 reduce current 数组

还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。

在这里插入图片描述

No.内容链接
1Openlayers 【入门教程】 - 【源代码+示例300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3Cesium 【入门教程】 - 【源代码+图文示例200+】
4MapboxGL【入门教程】 - 【源代码+图文示例150+】
5前端就业宝典 【面试题+详细答案 1000+】

在这里插入图片描述

文章目录


在这里插入图片描述

reduce() 函数是 ECMAScript 6 (ES6) 中数组的一个迭代方法,它接收一个回调函数作为累加器(accumulator),对该数组的所有元素(从左到右)执行操作,最后将计算结果累积为单一输出值。

一、定义与语法

arr.reduce(callback(accumulator, currentValue[, index[, array]])[, initialValue])
  • callback:必需,是一个函数,它接受四个参数:

    • accumulator(累计器):累计回调的返回值,也是上一次调用回调时返回的值,或者是 initialValue
    • currentValue(当前值):数组中当前正在处理的元素。
    • index(可选):当前元素在数组中的索引(从0开始或从initialValue指定的位置开始)。
    • array(可选):调用 reduce 方法的原数组。
  • initialValue(可选):传递给 reduce 的初始值。如果不提供此值,那么 reduce 会从数组的第二个元素开始执行,并使用第一个元素作为 accumulator 的初始值。

二、示例代码:

1. 数组求和:
const numbers = [1, 2, 3, 4, 5];

// 不提供初始值的情况
const sumWithoutInitialValue = numbers.reduce((acc, current) => acc + current);
console.log(sumWithoutInitialValue); // 输出:15

// 提供初始值的情况
const sumWithInitialValue = numbers.reduce((acc, current) => acc + current, 0);
console.log(sumWithInitialValue); // 输出:15
2. 数组扁平化:
const nestedArrays = [[1, 2], [3, 4], [5, 6]];

const flattenedArray = nestedArrays.reduce((acc, current) => [...acc, ...current], []);
console.log(flattenedArray); // 输出:[1, 2, 3, 4, 5, 6]
3. 计算对象数组中某个属性的总和:
const products = [
  { id: 1, price: 10 },
  { id: 2, price: 20 },
  { id: 3, price: 30 },
];

const totalPrice = products.reduce((total, product) => total + product.price, 0);
console.log(totalPrice); // 输出:60

三、应用场景

reduce方法是 JavaScript 中的一个高阶函数,以下是一些实际项目中使用reduce方法的场景:

  • 数组求和:对一个数组中的所有元素进行求和。
  • 数组求平均值:对一个数组中的所有元素进行求平均值。
  • 数组元素的去重:对一个数组中的所有元素进行去重。
  • 统计数组中每个元素出现的次数:将结果以对象的形式输出。
  • 根据指定属性对对象数组中的对象进行分组。
  • 结合spread运算符(三点运算符...)一起使用。
  • 遍历数组,同时对符合条件的数组元素进行操作。
  • promise的链式操作,按照顺序执行。
  • 开启由多个函数组成的管道。
  • reduce模拟数组的map函数。

标签:ES6,const,示例,元素,reduce,current,数组
From: https://blog.csdn.net/cuclife/article/details/137139931

相关文章

  • 大数据之 MapReduce 相关的 Java API 应用
    注意:本文基于前两篇教程Linux系统CentOS7上搭建HadoopHDFS集群详细步骤YARN集群和MapReduce原理及应用MapReduce是ApacheHadoop项目中的一种编程模型,用于大规模数据集的并行处理。在Hadoop中,MapReduce使用JavaAPI来编写Map和Reduce函数。API简......
  • CCF CSP模拟真题解答示例
    CCFCSP(CertifiedSoftwareProfessional)是中国计算机学会主办的软件能力认证考试,旨在评估参赛者在计算机科学和软件工程方面的基本知识和实践能力。请注意,以下解答仅作为示例,并非针对实际真题的准确答案。实际考试中的题目和答案可能会有所不同,因此建议参考官方发布的真题......
  • 大屏可视化项目示例--基于Vue3+vite2+echart+mock+axios+dataV
    图例: 项目环境:Vite、Echarts、Npm、Node、axios、mock、vue3、dataV。项目地址:IofTV-Screen-Vue3:......
  • 身份证实名认证接口会返回什么?javascript身份核验接口示例
    身份证实名认证接口是通过核验身份证号、姓名、证件头像等一系列的要素信息进行用户身份验证,那么,身份证实名认证接口一般在核验完成后会返回什么参数信息呢?下面翔云API小编为大家答疑解惑!一般情况下,身份核验只会返回一致或者不一致的结果,不一致的情况下会返回那些参数不一致,以翔......
  • 第18章 创建示例项目
    1创建项目创建一个MyWebApp的空项目。dotnetnewglobaljson--sdk-version3.1--outputMyWebApp已成功创建模板“global.jsonfile”。dotnetnewweb--no-https--outputMyWebApp--frameworknetcoreapp3.1已成功创建模板“ASP.NETCoreEmpty”。dotnetnewsln-o......
  • AMD hipcc 生成各个gpu 微架构汇编语言代码的方法示例
    1,gpuvectorAdd示例为了简化逻辑,故假设vector的size与运行配置的thread个熟正好一样多,比如都是512之类的.1.1源码vectorAdd.hip#include<stdio.h>#include<hip/hip_runtime.h>__global__voidvectorAdd(constfloat*A,constfloat*B,float*C){inti=......
  • OpenStack一键式脚本创建示例网络及图像等
    kolla-ansible提供的一键式创建示例网络、图像等,不得不说,真的是太贴心了!只需根据实际环境修改公共网络和租户网络部分。#!/bin/bashset-oerrexit#Thisscriptismeanttoberunonceafterrunningstartforthefirst#time.Thisscriptdownloadsacirrosimage......
  • windows下socket客户端编程示例
    #include<iostream>#include<winsock2.h>#include<ws2tcpip.h>#include<windows.h>#pragmacomment(lib,"Ws2_32.lib")intsocket_client_demo(char*addr,intport){ charrecvbuf[1024]={0}; intretVal=-1;#......
  • JWT示例与原理
    简介JWT(JSONWebToken)是一种去中心化的web认证方案,信息存储在客户端。数据结构JWT通常由3部分组成,Header、Payload、Signature。每个部分都是用Base64Url编码后的字符串,每个部分之间由点分割。形如Header.Payload.Signature注:Base64Url是Base64的一个变种,主要是将Base6......
  • 第11章 使用类——运算符重载(一)一个简单的运算符重载示例(Time类对象的加法)
    本文章是作者根据史蒂芬·普拉达所著的《C++PrimerPlus》而整理出的读书笔记,如果您在浏览过程中发现了什么错误,烦请告知。另外,此书由浅入深,非常适合有C语言基础的人学习,感兴趣的朋友可以自行阅读此书籍。运算符重载我们先了解下函数重载的概念,函数重载,也叫函数多态,指的是用......