广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Javascript中如何实现reduce函数查重
  • 717
分享到

Javascript中如何实现reduce函数查重

2024-04-02 19:04:59 717人浏览 安东尼
摘要

这篇文章给大家分享的是有关javascript中如何实现reduce函数查重的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。原代码:var arr="qweqr

这篇文章给大家分享的是有关javascript中如何实现reduce函数查重的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

原代码:

var arr="qweqrq"
var info= arr.split('').reduce((a,b)=>
 (a[b]++ || (a[b]=1),a)
,{})
console.log(info)

代码思路是这样的,先将字符串arr通过split方法切割成数组,然后使用reduce,这个方法干了什么呢,分为这几步:

1.首先reduce会接收一个callback来对数组里的每一个元素执行,如果有第二个参数如上例:{}。,那么callback将会使用这个{}作为参数来和数组中的第一个元素一同传入callback;

2.传入参数之后,会进行一个与门短路操作,也可以叫默认值操作,当a[b]++成真,则返回a[b]。而这里的a为{},b为"q",很明显a中并没有b,执行a[b]=1,那么就会给a[b]赋值为1,后面是一个逗号表达式,所以会返回有了a[b]:1这样属性的a对象;

与门短路操作:如果第一个操作数的值为true,进行短路操作,直接产生第一个操作数的值。如果为false,则产生第二个操作数的值。

逗号表达式:逗号表达式的一般形式是:表达式1,表达式2,表达式3……表达式n。逗号表达式的求解过程是:先计算表达式1的值,再计算表达式2的值,……一直计算到表达式n的值。最后整个逗号表达式的值是表达式n的值。

3.之后要说下reduce函数,它可以将之前一次执行后返回的结果作为参数继续和之后的元素一同传入callback执行,相当于fn(fn(fn(fn(a,b),c),d),e),fn即为callback;

4.在本例中,因为有第二个参数{}传入,所以callback执行了6次。相当于对数组中每一个元素都进行了录入和查重操作,比如当callback运行到第四次,这时的a是{q:1,w:1,e:1},执行callback,a[b]即a['q']存在,执行a['q']++,a['q']值为2,以此类推,最后得到的就是一个以数组每个元素为属性名,出现次数为属性值的对象。

需要注意的是,reduce是es5推出的方法,ie8及以下都不兼容。

感谢各位的阅读!关于“Javascript中如何实现reduce函数查重”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: Javascript中如何实现reduce函数查重

本文链接: https://www.lsjlt.com/news/74801.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Javascript中如何实现reduce函数查重
    这篇文章给大家分享的是有关Javascript中如何实现reduce函数查重的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。原代码:var arr="qweqr...
    99+
    2022-10-19
  • JavaScript如何实现函数重定义
    这篇文章主要介绍JavaScript如何实现函数重定义,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!函数重定义这是一种最基本也是最常用的代码反调试技术了。在JavaScript中,我们可以对用于收集信息的函数进行重定...
    99+
    2023-06-27
  • JavaScript中如何使用reduce实现数组map方法
    这篇文章主要介绍了JavaScript中如何使用reduce实现数组map方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家...
    99+
    2022-10-19
  • JavaScript中如何使用reduce实现数组扁平化
    这篇文章主要为大家展示了“JavaScript中如何使用reduce实现数组扁平化”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中如何使用r...
    99+
    2022-10-19
  • JavaScript如何使用reduce实现数组filter方法
    这篇文章主要为大家展示了“JavaScript如何使用reduce实现数组filter方法”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何...
    99+
    2022-10-19
  • es6中的reduce()函数如何使用
    本文小编为大家详细介绍“es6中的reduce()函数如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“es6中的reduce()函数如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在es6中,red...
    99+
    2023-07-05
  • javascript怎么实现函数重载
    这篇“javascript怎么实现函数重载”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“j...
    99+
    2022-10-19
  • 详解如何通过JavaScript实现函数重载
    有的同学在开发中可能遇到过一个困扰,但是很少有人去解决这个问题,我这用一个例子展现出来 const searcher = {}; searcher.findAll = () =>...
    99+
    2023-01-12
    JavaScript实现函数重载 JavaScript函数重载 JavaScript 重载
  • JavaScript如何使用reduce实现数组的flat方法
    这篇文章主要介绍了JavaScript如何使用reduce实现数组的flat方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大...
    99+
    2022-10-19
  • 如何在JavaScript数组中使用reduce
    如何在JavaScript数组中使用reduce?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。JavaScript的特点1.JavaScript主要用来向HTM...
    99+
    2023-06-14
  • JavaScript如何使用reduce方法实现求和
    这篇文章主要为大家展示了“JavaScript如何使用reduce方法实现求和”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript如何使用reduce方法实现求和”这篇文章吧。使用...
    99+
    2023-06-17
  • js中如何使用reduce()方法数组去重
    小编给大家分享一下js中如何使用reduce()方法数组去重,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!JavaScript的特点1.JavaScript主要用来向HTML页面添加交互行为。2.JavaScript可以直...
    99+
    2023-06-14
  • C++如何实现函数重载
    这篇文章给大家分享的是有关C++如何实现函数重载的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。函数重载函数重载还有一个别名叫函数多态,其实我个人感觉函数多态这个名字更好理解更恰当一些。函数多态是C++在C语言基础...
    99+
    2023-06-25
  • Python 中如何实现重定向 leetcode 函数?
    LeetCode 是一个知名的在线编程平台,许多程序员都会在这里刷题。在 LeetCode 上,我们可以通过编写特定的函数来解决不同的算法问题。但是,在某些情况下,我们可能需要重定向 LeetCode 函数的输出,以便进行更高效的调试和测...
    99+
    2023-06-29
    重定向 leetcode 函数
  • javascript数组去重如何实现
    这篇文章主要为大家展示了“javascript数组去重如何实现”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“javascript数组去重如何实现”这篇文章吧。 ...
    99+
    2022-10-19
  • MapReduce如何实现Reduce端重分区Join操作优化
    MapReduce如何实现Reduce端重分区Join操作优化,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、重分区Join操作(Reduce端)本文介绍的第...
    99+
    2023-06-02
  • ES5如何实现数组的reduce方法
    小编给大家分享一下ES5如何实现数组的reduce方法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!ES5 实现数组的 reduce 方法因为可能存在稀疏数组的关系,所以 reduce 实...
    99+
    2022-10-19
  • JavaScript如何实现函数绑定
    这篇文章主要介绍了JavaScript如何实现函数绑定,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:Perface如果让你实现这个...
    99+
    2022-10-19
  • JavaScript如何实现函数防抖
    这篇文章主要介绍了JavaScript如何实现函数防抖,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。函数防抖leading 为是否在进入时立即执行一次, trailing 为...
    99+
    2023-06-27
  • JavaScript如何实现函数节流
    这篇文章主要介绍了JavaScript如何实现函数节流,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。函数节流和函数防抖类似,区别在于内部额外使用了时间戳作为判断,在一段时间内...
    99+
    2023-06-27
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作