数组应用(indexOf,includes,find,findindex)

1.indexOf 寻找下标
从左到右搜索第一个===的下标。

[1,2,3].indexOf(1);  // 0
[1,2,3].indexOf('1'); // -1,因为不全等,找不到就返回-1
[1,2,3,1,5,6].indexOf(1, 2);    // 3,第二个参数是从x下标开始搜索

lastIndexOf
从右往左搜索第一个===的下标。

[1,2,3,1,5,7].lastIndexOf(1);    // 3
[1,2,3,1,5,7,1,5].lastIndexOf(1, 100);  // 6 第二个参数是从x下标开始搜索
[1,2,3,1,5,7,1,5].lastIndexOf(1, 5);    // 3

includes
判断数组内是否有===的项。

[1,2,3,4,5,6].includes(1);   // true
[1,2,3,4,5,6].includes('1');  // false,因为不全等
[1,2,3,4,5,6].includes(8);  // false

find
根据条件查找数组内的单个项,根据条件查找项,只要返回true那就证明找到了,如果为false的话,那就继续遍历查找。

[1,2,3].find(c=> c === 1);    // 1
[1,2,3].find(c=> c == '1'); // 1
[1,2,3].find(c=> c === 5);   // undefined
[1,2,3].find(c=> c > 1); // 2const people = [{name: "Matt",age: 27
},
{name: "Nicholas",age: 29
}];
//三个参数分别是:当前遍历的项、当前下标、原始数组。
let p = people.find((element, index, array) => {console.log(element, index, array);return element.age > 28;
});
console.log(p);     // {name: "Nicholas", age: 29}

findIndex
根据条件查找数组内匹配项的下标。

[{ age: 20 }, { age: 18 }, { age: 10 }].findIndex(function (item) {return item.age === 10
}); //2
[1,2,3].findIndex(c=> c === 5);  // -1
[1,2,3].findIndex(c=> c > 1);    // 1

程序猿头头:数组应用(indexOf,includes,find,findindex)相关推荐

  1. 程序猿修仙之路--数据结构之你是否真的懂数组? c#socket TCP同步网络通信 用lambda表达式树替代反射 ASP.NET MVC如何做一个简单的非法登录拦截...

    程序猿修仙之路--数据结构之你是否真的懂数组? 数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少.数据 ...

  2. 程序猿修仙之路--数据结构之你是否真的懂数组?

    数据结构 但凡IT江湖侠士,算法与数据结构为必修之课.早有前辈已经明确指出:程序=算法+数据结构  .要想在之后的江湖历练中通关,数据结构必不可少.数据结构与算法相辅相成,亦是阴阳互补之法. 开篇 说 ...

  3. 资深程序猿冒死揭开软件潜规则:无法维护的代码

    原始博文公布于: Roedy Green's Mindproducts (http://mindprod.com/unmain.html ).  翻译链接: 点击打开链接 2014年11月25日 03 ...

  4. 微信小程序支持ES6数组拓展

    目录 1.数组实例的 copyWithin(target,start,end) 2.数组实例的 find() 和 findIndex() 3.数组实例的 fill() 4.数组实例的 entries( ...

  5. 程序猿的日常——Java基础之equals与hashCode

    equals和hashCode是我们日常开发最常使用的方法,但是因为一般都使用默认的规则,因此也很少会引起关注.不过了解他们的用途和设计的原则,还是会帮助我们更好的设计代码. equals equal ...

  6. JAVA程序猿面试题汇总

    (此话题将不断更新,请留意) 第一,谈谈final, finally, finalize的差别. final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承.finally是异常 ...

  7. 关于CPU Cache——程序猿需要知道的那些事

    先来看一张本文所有概念的一个思维导图 为什么要有CPU Cache 随着工艺的提升最近几十年CPU的频率不断提升,而受制于制造工艺和成本限制,目前计算机的内存主要是DRAM并且在访问速度上没有质的突破 ...

  8. 程序猿的崛起,一篇文章看懂编程语言

    王国维在<人间词话>里写道:古今之成大事业.大学问者,必经过三种之境界:"昨夜西风凋碧树.独上高楼,望尽天涯路."此第一境也."衣带渐宽终不悔,为伊消得人憔悴 ...

  9. 建议 | 在中国不是程序猿,不建议你用序列化!

    Hi!我是小小,今天是本周的第四篇,本篇将会着重讲解关于Java序列化的内容 Java序列化 java序列化和反序列化数据,是通过ObjectOutputStream和ObjectInputStrea ...

  10. 面试 | 阿里P7级别程序猿亲身告知,不会面试,还想进大厂?做梦吧

    Hi!我是小小,今天是本周的第四篇,在这篇中,将会着重的讲解关于面试的一些内容. 一般来说,将会考察一些以下需要的技术点:看看聪明的你能答出几道来. Java基础知识面试题 Java概述 何为编程? ...

最新文章

  1. GitHub标星3w+的项目,全面了解算法和数据结构知识
  2. 一席-赵立平-大树细菌
  3. 简述Python的Numpy,SciPy和Pandas,Matplotlib的区别
  4. Codeforces Round #486 (Div. 3)【完结】
  5. C++中的deque、stack、queue及priority_queue
  6. 今天换了ubuntu10.04
  7. 置换元素和非置换元素_循环置换数组元素的C程序
  8. Zabbix 3.0 配置企业微信报警(配置zabbix-web)
  9. 在数学中10!代表10的阶乘。既代表1*2*3*4....*10; * 现在要求编程求出8!。
  10. SqlServer标识列
  11. Python中expected an indented block
  12. c语言会变颜色程序,【图片】(原创)用纯C变了个变色输出字符的程序。。。【c语言吧】_百度贴吧...
  13. Python3入门机器学习经典算法与应用 第3章 更多相关操作
  14. java -jar 命令隐藏黑窗口
  15. 阿里云RDS数据库设置
  16. Mac 取消系统更新的红点——强迫症晚期患者
  17. Linux环境下内存泄露检测
  18. vc MSChart的使用
  19. VB基础版版务处理_20050126
  20. 微信转发或分享朋友圈带缩略图、描述的实现方法

热门文章

  1. 大二〕一直在寻找 生而为人的意义(转载)
  2. python numpy中的矩阵、向量的加减乘除
  3. 数据结构第二章线性表知识总结(严蔚敏)
  4. NMS(非极大值抑制)代码构建与详解
  5. HDS USPV-VSP HP XP24000 Raid崩溃阵列损坏多盘损坏数据恢复方法思路分享
  6. easyopenjtag使用教程(最新版)
  7. php 英文小写转大写数字,php 英文字符大小写转换函数
  8. 利用简单Json处理实现企业微信后台“客户朋友圈”统计导出
  9. FreeRTOS移植Error: L6218E: Undefined symbol xTaskGetCurrentTaskHandle (referred from stream_buffer.o).
  10. 2的20次方怎么用计算机计算,2的20次方(2的20次方简便方法)