首页 > 其他分享 >理解 Arrayreduce()

理解 Arrayreduce()

时间:2024-09-26 21:38:30浏览次数:8  
标签:apple pear 初始值 reduce Arrayreduce 理解 数组 方法

介绍在学习 javascript 入门课程并学习数组的所有不同方法时。我不太了解reduce方法的真正威力,只有在第二次回顾它之后我才意识到这个方法是多么有用。我希望这篇文章能让一些人更清楚地了解此方法的工作原理以及何时使用它。 方法array.prototype.reduce(callbackfunction)array.prototype.reduce(callbackfunction,initialvalue) 这个方法到底有什么作用呢?reduce() 方法使用回调函数处理数组的每个元素,将结果累积为单个值。如果提供了初始值,则将其用作起点;否则,使用第一个数组元素,并从第二个元素开始迭代。 回调函数参数callbackfunction(累加器、currentvalue、currentindex、数组){} 累加器上一次迭代的累积结果或初始值(如果提供)。 当前值当前正在处理的数组元素的值。 当前索引当前元素的索引,如果提供了初始值,则从 0 开始,否则为 1。 大批正在执行reduce()方法的数组。 初始值当使用没有初始值的reduce方法时,回调函数将获取数组的第一个元素并将其初始化为累加器,然后迭代数组的其余部分。 使用案例使用reduce方法最常见的例子是数组的求和。const ages = [23, 15, 45, 13, 66, 54, 38];let sumofages = ages.reduce(function(sumofages, currentage){ sumofages = sumofages + currentage; return sumofages;}); // 254登录后复制虽然这正是reduce方法的优点和擅长之处,但它还有更多的功能。 获取组的最大年龄const ages = [23, 15, 45, 13, 66, 54, 38];let oldestperson = ages.reduce(function(maxage, currentage){ if(currentage>maxage){ maxage = currentage; } return maxage;}); // 66登录后复制这里我们使用reduce方法来保存我们在数组中遇到的最高年龄,并在迭代整个数组后返回该值。 删除数组中的重复项const store = ['apple', 'pear', 'apple', 'orange', 'apple', 'pear'];let itemcatalogue = store.reduce(function(uniquestoreitems, currentitem){ if(!uniquestoreitems.includes(currentitem)){ uniquestoreitems.push(currentitem); } return uniquestoreitems;}, []); // ['apple', 'pear', 'orange']登录后复制重要的是这里要注意的是,对于reduce方法中的初始值,我们提供一个空数组[]。这意味着累加器现在是一个数组,并且我们的回调函数仅推送该数组中尚未存在的项目。结果我们删除了重复项。 获取数组中的项目数const store = ['apple', 'pear', 'apple', 'orange', 'apple', 'pear'];let itemCount = store.reduce(function(count, currentItem){ count[currentItem] = (count[currentItem] || 0) + 1; return count;}, {}); // { apple: 3, pear: 2, orange: 1 }登录后复制重要这里需要注意的是,初始值是一个空对象。当我们浏览商店中的商品时,我们会用计数填充该商品。 结论首先,如果您已经读到这里,感谢您的阅读!我写这篇文章的主要目的是为了巩固我对reduce方法的理解,我希望你也能在这里学到一些新东西! reduce 方法有很多非常酷的应用程序,并且使用起来非常简洁。您对该方法还有其他用例或有趣的技巧吗?我很想知道! 以上就是理解 Arrayreduce()的详细内容,更多请关注我的其它相关文章!

标签:apple,pear,初始值,reduce,Arrayreduce,理解,数组,方法
From: https://www.cnblogs.com/aow054/p/18434437

相关文章

  • 理解 JavaScript 中的对象
    您是否遇到过需要在javascript代码中存储一组复杂信息的情况?例如,您需要将用户的数据存储在数据库中,例如姓名、年龄和地址。您将使用什么javascript框架来完成此任务?在本文中,我们将了解对象如何在此类任务中发挥作用,并了解javascript中这一重要数据集合的含义。跟我来吧!......
  • 理解 JavaScript 数组迭代方法
    我最近遇到一个面试问题,要求使用不同的方法来迭代javascript数组对象。提示最初看起来很简单,因为我应该提供一些示例代码片段。然而,这个问题引起了我的兴趣,所以我决定更深入地研究每种方法,不仅探索如何使用它们,而且探索何时以及为何选择一种方法而不是另一种方法。在本文中,我将......
  • 掌握循环的艺术:通过实际示例理解 For、While 和 Do While 结构
    循环是计算机编程中的一项基本且非常重要的功能,在每种编程语言中都发挥着同样重要的作用。循环主要分为三种类型:1.for2.while3.dowhile。我们先来了解一下什么是循环。循环是一种根据指定条件重复执行代码块的结构。您可能想知道,“如果循环可以达到此目的,为什么我们需要三种......
  • 理解为什么要用乘法逆元
    我知道用小费马定理求乘法逆元,但是有的时候会忘记为什么要使用它ap−2......
  • c语言中fork,exec和system函数的理解
    fork用于创建子进程。由fork创建的新进程被称为子进程(childprocess)。fork函数被调用一次,但返回两次。在父进程中,fork返回新创建子进程的进程ID。在子进程中,fork返回0。如果出现错误,fork返回一个负值。包含在<unistd.h>中,是Unix系统特有的文件(Macos并不太清楚),因此需要......
  • 逆地理解析位置偏移如何解决
    有不少开发者在测试使用【维智物联全域定位】平台的逆地理编码API时,出现与实际位置偏移较大的情况,解决方式有两种:查看定位坐标是否准确,如是坐标偏移造成,需要先替换正确的坐标进行测试,注意使用正确的坐标系。坐标正确,地址不对,可以按照“地址+正确坐标+key+请求信息”......
  • 通过理解 Windows rollback attack 的基础架构,用户和管理员可以更有效地保护系统免受
    “Windowsrollbackattack”是一种针对Windows操作系统的攻击手法,具体涉及利用系统恢复或回滚功能来执行恶意行为。以下是关于这种攻击的简要说明:什么是WindowsRollbackAttack定义:这种攻击利用Windows系统的恢复功能(例如,系统还原点或回滚机制)来恢复到之前的状态,从而可......
  • 电商领域的数据革命:理解数据飞轮与数据中台的关系
    电商领域的数据革命:理解数据飞轮与数据中台的关系在当今的电子商务领域,数据不仅是基础资产,更是驱动业务增长的关键动力。本文将探讨数据飞轮与数据中台的概念,它们的相似性与差异,以及如何在电商业务中实现这些概念,从而推动业务转型和增长。数据中台的定义与目标数据中台,作为一个......
  • 面试官:谈谈你对IO多路复用的理解?
    “IO多路复用”是编程中常见的技术词汇,使用这种技术的框架有很多,如,Redis、Kafka、Netty、Nginx中都用到了此技术。那问题来了,什么是IO多路复用?它的具体实现技术有哪些?这些技术之间有什么区别?今天我们就来简单的探讨一下。1.什么是IO多路复用?IO多路复用技术是一种允许单个......
  • 深入理解并发原子性、可见性、有序性与JMM内存模型
    1.并发三大特性并发编程Bug的源头:原子性、可见性和有序性问题1.1原子性一个或多个操作,要么全部执行且在执行过程中不被任何因素打断,要么全部不执行。在Java中,对基本数据类型的变量的读取和赋值操作是原子性操作(64位处理器)。不采取任何的原子性保障措施的自增操作并不是......