实现indexof()
1,数组不能为null,抛出错误
2,数组长度为0,返回-1
3,传入的起始位置无穷大(Infinity),把起始位置重置为0
4,传入的起始位置大于数组长度,返回-1
5,/传入的起始位置可以是正数,也可以是负数(如果负数超出长度取0)
6,找到返回下标k
Array.prototype.indexof=function(value,index){//引用者不能为空if(this==null){throw new TypeError('kkkk')}//保存该数组var o=Object(this)var len=o.length>>>0//数组长度为0if(len===0){return -1}//开始的位置var n=index ||0//如果传入的起始位置无穷大if(Math.abs(n)===Infinity){n=0}//起始位置大于数组长度if(n>=len){return -1}//传入的起始位置可以是正数,也可以是负数(如果负数超出长度取0)var k=Math.max(n>=0?n:len-Math.abs(n),0)//从起始位置开始查找while(k<len){if(k in o && o[k]===value){return k}k++}//如果找不到return -1}let arr=[1,2,3,4,5]
console.log(arr.indexof(3)) //2
实现indexof()相关推荐
- js中substr,substring,indexOf,lastIndexOf的用法
js中substr,substring,indexOf,lastIndexOf等的用法 1.substr substr(start,length)表示从start位置开始,截取length长度的字符串 ...
- 小程序在wxml使用indexOf
QQ技术交流群 173683866 526474645 欢迎加入交流讨论,打广告的一律飞机票 demo场景: 有两个数组,页面渲染一个数组1,数组2中有数组1随机下标的值,判断数组1是否包含数组2的值 ...
- IE8下不识别indexOf的问题
1.为Array原型添加indexOf方法(如果学过面向对象,相当于给Array类添加实例方法),方法体如下: //添加数组IndexOf方法 if (!Array.prototype.indexOf ...
- js数组中indexOf/filter/forEach/map/reduce详解
今天在网上看到一篇帖子,如题: 出处:前端开发博客 (http://caibaojian.com/5-array-methods.html) 在ES5中一共有9个Array方法,分别是: Array. ...
- java string.indexof(string)_Java StringBuffer indexOf()方法
Java StringBuffer indexOf()方法 java.lang.StringBuffer.indexOf(String str, int fromIndex) 方法返回此字符串指定的子 ...
- String indexOf 算法
2019独角兽企业重金招聘Python工程师标准>>> /*** Code shared by String and StringBuffer to do searches. The ...
- 使用js的indexOf,lastIndexOf,slice三函数轻易得到url的服务器,路径和页名
js的indexOf,lastIndexOf,slice能帮我们在js字符串处理时少走一些弯路. 程序如下: var url="http://www.cnblogs.com/xiandeda ...
- javascript的indexOf忽略大小写
javascript 中 indexOf 是严格区分大小写的 如何才能忽略大小写呢? 把他们全都换成大写或小写,再比较就可以了 indexOf对象内第一次出现子字符串的字符位置 用toLowerCas ...
- jquery 常用方法 delegate() siblings() closest() indexOf() substring()
siblings() 获得匹配集合中每个元素的同胞,通过选择器进行筛选是可选的. closest() 方法获得匹配选择器的第一个祖先元素,从当前元素开始沿 DOM 树向上. //删除行 functio ...
- 为什么indexOf在数组IE8上不起作用?
本文翻译自:Why doesn't indexOf work on an array IE8? The below function works fine on Opera, Firefox and ...
最新文章
- markdown 常用格式
- OpenCV中Mat属性step,step1,elemSize,elemSize1
- 类加载器-双亲委派-源码分析2
- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- 分析java中文乱码的原因
- python 报错继续执行_Python报错不要慌,这三个关键词帮你解决问题!
- 隐私与AI兼得,蚂蚁金服是如何做到的?
- int *p=new int; int *p=new int[10]; int *p=new int(10);这三个有什么区别
- 先查询后修改并发的时候sql_SQL调优总结
- 日本研发圆滚滚的球形无人机,被LED屏团团包围
- LSB最低有效位算法实现
- Reactor 线程模型
- zuc算法代码详解_ZUC算法原理及实现过程[共3页]
- html播放韰 寸 频,asp.net 汉字转换拼音及首字母实现代码
- iOS @available 和 #available 的用法
- 关于jul桥接slf4j失败问题的探究
- 如何使用Excel绘制图表?
- 【Python】Pandas GroupBy 深度总结
- 小程序 input自动聚焦唤起键盘
- 一年时间,从一个浑浑噩噩的测试小人物到测试主管的成长之路
热门文章
- 电脑应用程序错误怎么办_电脑Windows出错信息解析及解决方案
- 前端date format_前端面试-手撕代码篇
- c语言可变参数 printf,c语言 使用可变参数列表实现printf(my_printf)
- java连接oracle失败_程序连接oracle数据库失败
- 启动vue项目报错faield at the vue-cli-service serve
- 【31】将文件间的编译依存关系降至最低
- (2) OpenSSL命令
- c/c++ 数组和指针
- 存储过程/函数权限的问题解决(The user specified as a definer ('root'@'%') does not exist)...
- Tomcat中设置数据源和连接池