自己封装函数,实现数组的内置方法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 ...
随机推荐
- std::string::insert函数
string& insert (size_t pos, const string& str); string& insert (size_t pos, const string ...
- git撤销已经push到远端的commit
在使用git时,push到远端后发现commit了多余的文件,或者希望能够回退到以前的版本. 先在本地回退到相应的版本: git reset --hard <版本号> // 注意使用 -- ...
- Nginx如何来配置隐藏入口文件index.php(代码)
Nginx配置文件里放入这段代码 server { location / { index index.php index.html index.htm l.php; autoindex on; if ...
- undefined 和 not defined
概念上的解释: undefined是javascript语言中定义的五个原始类中的一个,换句话说,undefined并不是程序报错,而是程序允许的一个值. not defined是javascript ...
- AJ学IOS(55)多线程网络之图片下载框架之SDWebImage
AJ分享,必须精品 效果: 代码: - (NSArray *)apps { if (!_apps) { NSArray *dictArray = [NSArray arrayWithContentsO ...
- Pytorch自定义创建BP神经网络
class BPNet(nn.Module): def __init__(self, in_dim, n_hidden_1, n_hidden_2,\ n_hidden_3, n_hidden_4, ...
- 06-移动web之flex布局
一.基本概念 flex布局又叫伸缩布局 .弹性布局 .伸缩盒布局 .弹性盒布局 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. ...
- Persona & User Scenario
Persona: Tom:男,21岁,大学生,周末经常和同学们一起出去吃饭.唱歌.打球.郊游,期间会时不时拍一些照片以作纪念,长期积累的照片数量较多且内容繁杂,很少对照片进行整理: Alisa:女,2 ...
- 4. css事件
可通过使用css伪类实现点击元素变色的效果,两个伪类是:active, :focus :active :active选择器用于选择活动链接.当在一个链接上点击时,它就会成为活动的(激活的),:acti ...
- [yii2] 实现所有action方法之前执行一段代码或者方法
我做的是在执行任何方法之前,验证用户登陆状态! 其实就是在controller中写beforeaction()方法, 然后我的方案就是做一个基类,然后让你所有控制器继承你的基类, 如果控制器的基类用_ ...