浅谈lastIndexOf
今天误解了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相关推荐
- 【JVM】浅谈双亲委派和破坏双亲委派
转载自 [JVM]浅谈双亲委派和破坏双亲委派 一.前言 笔者曾经阅读过周志明的<深入理解Java虚拟机>这本书,阅读完后自以为对jvm有了一定的了解,然而当真正碰到问题的时候,才发现自 ...
- JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6
Node.js 的基础教学 之 exports 和 module.exports:https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript.ES5.ES6 ...
- 浅谈MySQL存储引擎-InnoDBMyISAM
浅谈MySQL存储引擎-InnoDB&MyISAM 存储引擎在MySQL的逻辑架构中位于第三层,负责MySQL中的数据的存储和提取.MySQL存储引擎有很多,不同的存储引擎保存数据和索引的方式 ...
- 【大话设计模式】——浅谈设计模式基础
初学设计模式给我最大的感受是:人类真是伟大啊!单单是设计模式的基础课程就让我感受到了强烈的生活气息. 个人感觉<大话设计模式>这本书写的真好.让貌似非常晦涩难懂的设计模式变的生活化.趣味化 ...
- 学校计算机机房好处,浅谈学校计算机机房维护
浅谈学校计算机机房维护 现在的学校机房都配置了数量较多的计算机,而且机房的使用非常频繁.对于怎样维护好计算机,特别是计算机软件系统,对广大计算机教师来说是一个很重要且非常现实的问题.下面就本人在 ...
- java 中的单元测试_浅谈Java 中的单元测试
单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...
- mybatis与php,浅谈mybatis中的#和$的区别
浅谈mybatis中的#和$的区别 发布于 2016-07-30 11:14:47 | 236 次阅读 | 评论: 0 | 来源: 网友投递 MyBatis 基于Java的持久层框架MyBatis 本 ...
- 浅谈GCC预编译头技术
浅谈GCC预编译头技术 文/jorge --谨以此文,悼念我等待MinGW编译时逝去的那些时间. 其 实刚开始编程的时候,我是丝毫不重视编译速度之类的问题的,原因很简单,因为那时我用BASICA.后来 ...
- 【笔记】震惊!世上最接地气的字符串浅谈(HASH+KMP)
震惊!世上最接地气的字符串浅谈(HASH+KMP) 笔者过于垃圾,肯定会有些错的地方,欢迎各位巨佬指正,感激不尽! 引用:LYD的蓝书,一本通,DFC的讲稿,网上各路巨佬 Luguo id: 章鱼那个 ...
最新文章
- springboot+kafka(ip地址瞎写的)
- ssh架构之hibernate(一)简单使用hibernate完成CRUD
- linux共享文件权限设置,linux – Windows更改Samba文件共享中的文件权限
- Flexbox 布局 – 表单
- 牛客网编程练习之编程马拉松:解读密码
- Java中的JDBC教程
- Robin负载均衡策略存在问题及CSE解决方案
- Eclipse 好用常用插件集合
- python_列表——元组——字典——集合
- Kafka学习笔记之Kafka三款监控工具
- 从零开始学 Web 之 jQuery(二)获取和操作元素的属性
- 服务器信息批量收集,如何批量导入或导出服务器信息
- Java学习篇之I/O篇
- 83页XX市高速智慧公路总体建设方案
- macOS 下的 homebrew
- 一个uniapp开发的任务类小程序源码
- 合作式智能运输系统车路协同云控系统V2X设备接入技术规范
- 网易mumu模拟器禁止更新/屏蔽更新方法
- 获取中国节假日信息api
- HPUX下虚拟技术IVM的使用整理