前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Array对象的方法实现(6)----Array.prototype.indexOf(实现常规参数的功能)

Array对象的方法实现(6)----Array.prototype.indexOf(实现常规参数的功能)

作者头像
Rattenking
发布2021-01-29 16:01:48
5140
发布2021-01-29 16:01:48
举报
文章被收录于专栏:Rattenking

11,Array的indexOf方法

indexOf()方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。 语法:arr.indexOf(searchElement[, fromIndex = 0]) 注意:1,返回找到的索引或者不存在的-1。2,不改变原数组

代码语言:javascript
复制
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:只有一个参数

代码语言:javascript
复制
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:两个参数

代码语言:javascript
复制
let array = [2, 5, 9];
 console.log(array._indexOf(2, -1)); // -1
 console.log(array._indexOf(2, -3));// 0

测试3:找出指定元素出现的所有位置

代码语言:javascript
复制
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]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017/09/01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档