今天来给大家分享下使用underscore在数组中查找指定元素。

在开发中,我们经常会遇到在数组中查找指定元素的需求,可能大家觉得这个需求过于简单,然而如何优雅的去实现一个 findIndex 和 findLastIndex、indexOf 和 lastIndexOf 方法却是很少人去思考的。本文就带着大家一起参考着 underscore 去实现这些方法。

在实现前,先看看 ES6 的 findIndex 方法,让大家了解 findIndex 的使用方法。

1. findIndex

ES6 对数组新增了 findIndex 方法,它会返回数组中满足提供的函数的第一个元素的索引,否则返回 -1。举个例子:

findIndex 会找出第一个大于 15 的元素的下标,所以最后返回 3。是不是很简单,其实,我们自己去实现一个 findIndex 也很简单。

2. 实现findIndex

思路自然很明了,遍历一遍,返回符合要求的值的下标即可。

3. findLastIndex

findIndex 是正序查找,但正如 indexOf 还有一个对应的 lastIndexOf 方法,我们也想写一个倒序查找的 findLastIndex 函数。实现自然也很简单,只要修改下循环即可。

4. createIndexFinder

然而问题在于,findIndex 和 findLastIndex 其实有很多重复的部分,如何精简冗余的内容呢?这便是我们要学习的地方,日后面试问到此类问题,也是加分的选项。

underscore 的思路就是利用传参的不同,返回不同的函数。这个自然是简单,但是如何根据参数的不同,在同一个循环中,实现正序和倒序遍历呢?

让我们直接模仿 underscore 的实现:

学习相关推荐(编程必备辅助):

①:搜索关注公众号“只会写BUG”,分享更多干货知识,资讯,教程等②:海量编程类资料零基础到高级亟待领取!!!

如果觉得对你有一丢丢帮助,麻烦动动你的小手指【关注】一下上面的公众号吧,或者【转发】让更多人看到该文章。大家也可积极后台给我留言,多多交流,共同进步。

中求解数组中元素个数_JavaScript之学underscore在数组中查找指定元素相关推荐

  1. 在数组中查找指定元素_JavaScript之学underscore在数组中查找指定元素

    今天来给大家分享下使用underscore在数组中查找指定元素. 在开发中,我们经常会遇到在数组中查找指定元素的需求,可能大家觉得这个需求过于简单,然而如何优雅的去实现一个 findIndex 和 f ...

  2. PTA 6-1 在数组中查找指定元素 (25分)

    6-1 在数组中查找指定元素 (25分) 本题要求实现一个在数组中查找指定元素的简单函数. 函数接口定义: int search( int list[], int n, int x ); 其中list ...

  3. 习题8-2 在数组中查找指定元素 (15 分)(python)

    本题要求实现一个在数组中查找指定元素的简单函数. 函数接口定义: int search( int list[], int n, int x ); 其中list[]是用户传入的数组:n(≥0)是list ...

  4. 6-5 在数组中查找指定元素 (15分)

    题目: 本题要求实现一个在数组中查找指定元素的简单函数. 函数接口定义: int search( int list[], int n, int x ); 其中list[]是用户传入的数组:n(≥0)是 ...

  5. 习题8-2 在数组中查找指定元素(15 分)

    本题要求实现一个在数组中查找指定元素的简单函数. 函数接口定义: int search( int list[], int n, int x ); 其中list[]是用户传入的数组:n(≥0)是list ...

  6. 在数组中查找指定元素

    本题要求实现一个在数组中查找指定元素的简单函数. 函数接口定义: int search( int list[], int n, int x ); 其中list[]是用户传入的数组:n(≥0)是list ...

  7. 在数组中查找指定元素 (10分)

    ** 在数组中查找指定元素 (10分)** 本题要求实现一个在数组中查找指定元素的简单函数. 函数接口定义: int search( int list[], int n, int x ); 其中lis ...

  8. (PTA,C语言)在数组中查找指定元素

    本题要求实现一个在数组中查找指定元素的简单函数. 函数接口定义: int search( int list[], int n, int x ); 其中list[]是用户传入的数组:n(≥0)是list ...

  9. 习题8-2 在数组中查找指定元素

    习题8-2 在数组中查找指定元素 (15 分) 本题要求实现一个在数组中查找指定元素的简单函数. 函数接口定义: int search( int list[], int n, int x ); 其中l ...

最新文章

  1. JS基础语法(04)-逗号运算符
  2. SAP UI5 jQuery.sap.includeStyleSheet
  3. 服务器操作系统的安装步骤,服务器操作系统的安装步骤
  4. SpringBoot 2 快速整合 | 统一异常处理
  5. 随想录(网站api的设计)
  6. Staked 回应节点遭到 slash 惩罚:由技术性问题导致,将全额赔偿受影响客户
  7. java(14) - HashMap类
  8. 给定N个加号,M个减号以及N+M+1个整数,A1+A2+...+Am+An+1,小明想知道在所有由这n个加号,M个减号以及N+M+1个整数凑出的合法的后缀表达式中,结果最大的是哪一个?
  9. **Java有哪些悲观锁的实现_Redis 分布式锁的正确实现方式(Java 版)
  10. 【c++ | 谭浩翔】第四章练习
  11. 如何做好测试用例设计
  12. 美元反弹外汇分析,黄金外汇买卖近期将有怎样的行情_小豹科技
  13. 计算机设备没有音频,电脑找不到音频设备是怎么回事_电脑没有音频设备怎么处理...
  14. 关于html的实训日志,满足你的甜蜜幻想, 《我与她的实习日志》登陆NS
  15. c语言中数组怎么用乘法分配律,乘法分配律说课稿(5篇)(33页)-原创力文档
  16. Codeforces-686C Robbers' watch
  17. eNSP:实现不同网段不同vlan主机之间的互访(配置单臂路由)
  18. CSS overflow的几种属性值
  19. 2020神舟几号发射_中国宇宙飞船发射到神州几号了
  20. FBI的阅人术_如何在一开始谈话的几分钟内,了解这个人?

热门文章

  1. javaul材质包下载_只需一个水桶包 你就能装满时髦
  2. mysql 剔除不可见字符_机器视觉OCR字符检测在食品瓶盖上的应用
  3. 部署 SAP UI5 应用到 SAP BTP 时遇到的 error retrieving MTA 错误消息
  4. SAP 电商云 Spartacus 5_0.md 迁移文档的编写格式
  5. 日志库 winston 的学习笔记 - logger.info 的实现原理单步调试
  6. SAP UI5 初学者教程之四:XML 视图初探试读版
  7. SAP ABAP 编程语言里的%_c_pointer代表什么
  8. SAP Spartacus 的路由配置
  9. SAP Spartacus里的product carousel控件的实现cx-product-carousel
  10. Windows环境下,如何在Docker里运行SAP UI5应用