自己封装函数,实现数组的内置方法indexOf的功能
在学习或开发过程中,经常会有朋友需要使用到一个数组方法-indexOf,这里我们先来谈谈它的功能:返回指定数据所在的索引,如果没有则返回-1。
那么我们在使用时通常是直接使用它这个数组内置方法
今天这篇文章我们便要自己封装一个函数,用来实现数组的内置方法indexOf的功能,已便我们对其有更好的理解!!
在此之前我们先来了解一下数组的内置方法indexOf的一些基本共功能及细节
var arr = ["hello", 1, 2, 3, 4, 5, 6, "world"];
var res = arr.indexOf(2);
console.log(res); //返回索引
var arr = ["hello", 1, 2, 3, 4, 5, 6, 2, "world"];
var res = arr.indexOf(2, 5);
console.log(res); //返回7
在这里我们又给添加了一个参数,这个参数表示查找的起始位置
var arr = ["hello", 1, 2, 3, 4, 5, 6, "world"];
var res = arr.indexOf("aaa");
console.log(res); //返回-1
数组中没有aaa这个字符,返回-1
var arr = ["hello", 1, 2, 3, 4, 5, 6, "world"];
var res = arr.indexOf(3, 2.5);
console.log(res); //-1
在这里我们给放索引值的位置添加了一个参数为小数,观察发现系统自动会parseInt后在进行正常运算
在了解了数组的内置方法indexOf的一些基本共功能及细节之后,我们开始自己封装一个函数,用来实现和它一样的功能
;(function() {
"use strict"; //我们在严格模式下进行
var arr = [2, 1, 6, 99, 101, 4, 1, 23];
function arrIndexOf(a, b) { //定义函数,接收两个参数
if(typeof b === "number"){ //先假设有实参b,在这里我们首先判断传实参b是否是一个数字
b = parseInt(b); //如果实参b为小数,先取整(注意,这里的取整是,没有四舍五入的,所以我们用parseInt)
for(var i = b; i < arr.length; i++) { //这里直接从索引为b的位置开始遍历
if(a === arr[i]){
return i; //如果找到了,返回索引
}
}
return -1; //没找到,返回-1
}else{ //如果没有实参b(undefined)或者实参b不是数值,就从最开始遍历整个数组
for(var i = 0; i < arr.length; i++) {
if(a === arr[i]){
return i;
}
}
return -1;
}
}
var res = arrIndexOf(99, 2);
console.log(res); //实测和数组中的内置方法indexOf无差
})();
以上便是个人封装的一个同数组内置indexOf方法函数,感谢观看!
自己封装函数,实现数组的内置方法indexOf的功能的更多相关文章
- day28 面向对象:反射,内置函数,类的内置方法
面向对象进阶博客地址链接: http://www.cnblogs.com/Eva-J/articles/7351812.html 复习昨日内容: # 包 # 开发规范 # # hashlib # 登录 ...
- python day21 ——面向对像-反射 getattr,内置方法
一.反射:用字符串数据类型的变量名来访问这个变量的值 上代码^_^ # class Student: # ROLE = 'STUDENT' # @classmethod # def check_cou ...
- Python进阶-XVIV 类的内置方法:__str__ 、__repr__、析构函数(__del__)、双下的call,eq,new,hash 以及item相关的三个方法
类的内置方法 它与内置函数有紧密的联系,有的内置函数就是调用的内置方法. 在顶级父类obj中有: 两个双下方法 obj.__str__ str(obj) obj.__repr__ repr(obj) ...
- python之字符串,列表,字典,元组,集合内置方法总结
目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...
- 第8.14节 Python类中内置方法__str__详解
一. object类内置方法__str__和函数str 类的内置方法__str__和内置函数str实际上实现的是同一功能,实际上str调用的就是__str__方法,只是调用方式不同,二者的调用语法如下 ...
- 第8.13节 Python类中内置方法__repr__详解
当我们在交互环境下输入对象时会直接显示对象的信息,交互环境下输入print(对象)或代码中print(对象)也会输出对象的信息,这些输出信息与两个内置方法:__str__方法和__repr__方法有关 ...
- JavaScript封装一个函数效果类似内置方法concat()
JavaScript封装一个函数效果类似内置方法concat() 首先回忆concat()的作用: concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个 ...
- 0513JS数组内置方法、数学函数、时间函数
|数组中常用的内置方法|-push()与pop()|--push()是往数组的尾部添加,同时返回新数组的长度 var attr = [1,2,3,4,5];var attr2 = [6,7,8,9,0 ...
- [JSP][JSTL]页面调用函数--它${fn:}内置函数、是推断字符串是空的、更换车厢
页面中调用函数--之${fn:}内置函数 函数描写叙述 fn:contains(string, substring) 假设參数string中包括參数substring,返回true fn:contai ...
随机推荐
- centOS7常用操作命令
大多和DOS命令差不多 文件与目录操作 命令 解析 cd /home 进入 ‘/home’ 目录 cd .. 返回上一级目录 cd ../.. 返回上两级目录 cd - 返回上次所在目录 cp fil ...
- 运行jmeter.bat时 提示 not able to find java executable or version
安装过好几次,这是第一次遇到运行jmeter.bat时 提示 not able to find java executable or version Please check your Java in ...
- 2020年iOS进阶面试题总结(一)
准备找工作的你,可以看看,复习复习!! 1.说一下OC的反射机制 在动态运行下我们可以构建任何一个类,然后我们通过这个类知道这个类的所有的属性和方法,并且如果我们创建一个对象,我们也可以通过对象找到这 ...
- 面试问了解Linux内存管理吗?10张图给你安排的明明白白!
文章每周持续更新,各位的「三连」是对我最大的肯定.可以微信搜索公众号「 后端技术学堂 」第一时间阅读(一般比博客早更新一到两篇) 今天来带大家研究一下Linux内存管理.对于精通 CURD 的业务同学 ...
- L8梯度消失、梯度爆炸
houseprices数据下载: 链接:https://pan.baidu.com/s/1-szkkAALzzJJmCLlJ1aXGQ 提取码:9n9k 梯度消失.梯度爆炸以及Kaggle房价预测 代 ...
- stand up meeting 12-7
weekend updates: 1.答题界面和结果界面的跳转和数据传输已全部完成. 2.答题界面完成简单的getRankingData API结果展示,答题时间,错误数目和错题题目的展示,点击题目可 ...
- Android内存优化—dumpsys meminfo详解
原创置顶 不死鸟JGC 最后发布于2018-12-24 14:19:28 阅读数 3960 收藏展开dumpsys 介绍Dumpsys用户系统诊断,它运行在设备上,并提供系统服务状态信息 命令格式: ...
- api测试用例(编写思路)
在API的自动化测试维度中,测试维度分为两个维度,一个是单独的对API的验证,客户端发送一个请求后,服务端得到客户端的请求并且响应回复给客户端: 另外一个维度是基于业务场景的测试,基于业务场景的也就是 ...
- bluecms v1.6 sp1 代码审计学习
前言 正式开始代码审计的学习,拓宽自己的知识面.代码审计学习的动力也是来自团队里的王叹之师傅,向王叹之师傅学习. 这里参考了一些前辈,师傅的复现经验和bluecms审计的心得 安装 install.p ...
- python机器学习的常用算法
Python机器学习 学习意味着通过学习或经验获得知识或技能.基于此,我们可以定义机器学习(ML)如下 - 它可以被定义为计算机科学领域,更具体地说是人工智能的应用,其为计算机系统提供了学习数据和从经 ...