今天误解了Array.prototype.lastIndexOf函数, 有必要在这里写出来, 帮助像我一样的新手。

下面这个返回几?

var n = [1, 2, 3, 4, 5, 3,1];
console.log(n.lastIndexOf(3));

误解:

刚开始,我以为从后往前数,那么应该是返回1, 因为数到底2个就是3吗,再加上数组从0开始。

我又去看文档:

lastIndexOf() 方法返回指定元素(也即有效的 JavaScript 值或变量)在数组中的最后一个的索引,如果不存在则返回 -1。从数组的后面向前查找,从 fromIndex 处开始。

既然是最后一个索引,那么我继续从后往前数, 得到4.

但是:

各位运行一下就会发现结果是5!

这?

于是我写下:

按数到第一个, 如果从后往前数的话则应该是1, 从前往后就是2;
按数到第二个,从后往前第2个就,是4,从前往后第2个是5;

也就是说这是从前往后数得到的5.

那?

其实我误解了索引这个东西

索引不存在从哪边数,它是定的。
也就是说,一个元素对应一个索引,不会变的。
那么, 对于同一个元素不管是从前往后(indexOf)还是从后往前(lastIndexOf)查找,返回值应该是一样的。

var n = [1, 2, 3, 4, 5, 3,1];
console.log(n.indexOf(4));
console.log(n.lastIndexOf(4));

上面都返回3,我想lastIndexOf的出现是为了性能的原因吧,如果离后面近就用lastIndexOf,但是它又是找到最后一个索引,这有个屁用?

总结:

  • indexOf 从前往后第一个,返回索引

  • lastIndexOf 从后往前最后一个,返回索引

所以这2个查找的就是同一个元素, 不同的写法,而且始终只能返回索引小的。

浅谈lastIndexOf相关推荐

  1. 【JVM】浅谈双亲委派和破坏双亲委派

    转载自   [JVM]浅谈双亲委派和破坏双亲委派 一.前言 笔者曾经阅读过周志明的<深入理解Java虚拟机>这本书,阅读完后自以为对jvm有了一定的了解,然而当真正碰到问题的时候,才发现自 ...

  2. JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6

    Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...

  3. 浅谈MySQL存储引擎-InnoDBMyISAM

    浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...

  4. 【大话设计模式】——浅谈设计模式基础

    初学设计模式给我最大的感受是:人类真是伟大啊!单单是设计模式的基础课程就让我感受到了强烈的生活气息. 个人感觉<大话设计模式>这本书写的真好.让貌似非常晦涩难懂的设计模式变的生活化.趣味化 ...

  5. 学校计算机机房好处,浅谈学校计算机机房维护

    浅谈学校计算机机房维护    现在的学校机房都配置了数量较多的计算机,而且机房的使用非常频繁.对于怎样维护好计算机,特别是计算机软件系统,对广大计算机教师来说是一个很重要且非常现实的问题.下面就本人在 ...

  6. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  7. mybatis与php,浅谈mybatis中的#和$的区别

    浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...

  8. 浅谈GCC预编译头技术

    浅谈GCC预编译头技术 文/jorge --谨以此文,悼念我等待MinGW编译时逝去的那些时间. 其 实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA.后来 ...

  9. 【笔记】震惊!世上最接地气的字符串浅谈(HASH+KMP)

    震惊!世上最接地气的字符串浅谈(HASH+KMP) 笔者过于垃圾,肯定会有些错的地方,欢迎各位巨佬指正,感激不尽! 引用:LYD的蓝书,一本通,DFC的讲稿,网上各路巨佬 Luguo id: 章鱼那个 ...

最新文章

  1. springboot+kafka(ip地址瞎写的)
  2. ssh架构之hibernate(一)简单使用hibernate完成CRUD
  3. linux共享文件权限设置,linux – Windows更改Samba文件共享中的文件权限
  4. Flexbox 布局 – 表单
  5. 牛客网编程练习之编程马拉松:解读密码
  6. Java中的JDBC教程
  7. Robin负载均衡策略存在问题及CSE解决方案
  8. Eclipse 好用常用插件集合
  9. python_列表——元组——字典——集合
  10. Kafka学习笔记之Kafka三款监控工具
  11. 从零开始学 Web 之 jQuery(二)获取和操作元素的属性
  12. 服务器信息批量收集,如何批量导入或导出服务器信息
  13. Java学习篇之I/O篇
  14. 83页XX市高速智慧公路总体建设方案
  15. macOS 下的 homebrew
  16. 一个uniapp开发的任务类小程序源码
  17. 合作式智能运输系统车路协同云控系统V2X设备接入技术规范
  18. 网易mumu模拟器禁止更新/屏蔽更新方法
  19. 获取中国节假日信息api
  20. HPUX下虚拟技术IVM的使用整理

热门文章

  1. 【AI-CPS】【工业互联网】从观望到行动:全球工业物联网市场生态全景观察
  2. 《 百度大脑AI技术成果白皮书》,介绍百度大脑5.0,附48页PDF下载
  3. 谷歌入华,抢在搜索之前的是Waymo无人驾驶
  4. 图灵奖公布:高性能计算先驱、为超算铺平道路的Jack Dongarra获奖
  5. 一个程序员是怎么被逼疯的?
  6. 干货! AI 推断解决方案栈 Vitis AI 全流程独家解析
  7. Go switch语句
  8. 大话:边缘计算、雾计算、云计算
  9. 5分钟学会Java 9~Java11的七大新特性
  10. @Conditional派生注解