Array对象的方法实现(6)----Array.prototype.indexOf(实现常规参数的功能)
来源:互联网 发布:非线性优化 编辑:程序博客网 时间:2024/06/05 17:10
11,Array的indexOf方法
indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。
语法:arr.indexOf(searchElement[, fromIndex = 0])
注意:1,返回找到的索引或者不存在的-1。2,不改变原数组
Array.prototype._indexOf = function(){ if(this === null){throw new TypeError('"this" is null or not defined');} let that = Object(this),len = that.length >>> 0,param = arguments; if(param[1] && Math.abs(param[1])>= len)return -1; startIndex = Math.max((param[1] ? param[1] : 0), 0) ; while(startIndex < len){ if(startIndex in that && param[0] === that[startIndex])return startIndex; startIndex++; } return -1; }测试1:只有一个参数
let a = [2, 9, 7, 8, 9]; console.log(a._indexOf(2)); // 0 console.log(a._indexOf(6)); // -1 console.log(a._indexOf(7)); // 2 console.log(a._indexOf(8)); // 3 console.log(a._indexOf(9)); // 1
测试2:两个参数
let array = [2, 5, 9]; console.log(array._indexOf(2, -1)); // -1 console.log(array._indexOf(2, -3));// 0测试3:找出指定元素出现的所有位置
var indices = [];var array = ['a', 'b', 'a', 'c', 'a', 'd'];var element = 'a';var idx = array._indexOf(element);while (idx != -1) { indices.push(idx); idx = array._indexOf(element, idx + 1);}console.log(indices);// [0, 2, 4]
阅读全文
0 0
- Array对象的方法实现(6)----Array.prototype.indexOf(实现常规参数的功能)
- Array对象的方法实现(5)----Array.prototype.includes(实现常规参数的功能)
- Array对象的方法实现(1)----Array.prototype.push和Array.prototype.concat(实现常规参数的功能)
- Array对象的方法实现(2)----Array.prototype.every和Array.prototype.fill(实现常规参数的功能)
- Array对象的方法实现(3)----Array.prototype.filter和Array.prototype.find(实现常规参数的功能)
- Array对象的方法实现(4)----Array.prototype.findIndex和Array.prototype.forEach(实现常规参数的功能)
- JavaScript Array对象indexOf()方法的实现
- 封装一个方法实现js内置对象array的indexOf()方法
- Array.prototype.filter()的实现
- JS——实现的Array indexOf
- 扩展Array.prototype.indexOf引发的问题
- 使用Array.prototype.slice实现带参数的setTimeout
- map方法学习,封装函数--实现Array.prototype.map()的功能
- 浅谈Array.prototype.map(func)方法的实现
- 【JavaScript】(6)Object、String、Array、Date对象的方法、属性(constructor、prototype)
- 重写javascript的Array.prototype.push方法实现类似java.util.set添加不重复元素
- Array.IndexOf的性能问题
- 实现indexof()方法
- Linux系统中的文件的s权限
- Get和Post请求的区别
- DX,DevExpress中的RichEditControl如何替换选中的文字
- WOJ1064-What is Left
- EVC
- Array对象的方法实现(6)----Array.prototype.indexOf(实现常规参数的功能)
- SKU组合查询算法代码-实例二
- 不留痕迹的清除部分history历史命令记录
- Android中视频播放器JCVideoPlayerStandard
- 1017:字符串正反连接
- CCF试题——相邻数对
- 已收录办公界黑马,实用的pdf在线转换器
- God bless me
- torch for Mac OS X安装