自己封装函数,实现数组的内置方法indexOf的功能
Posted artislong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自己封装函数,实现数组的内置方法indexOf的功能相关的知识,希望对你有一定的参考价值。
在学习或开发过程中,经常会有朋友需要使用到一个数组方法-indexOf,这里我们先来谈谈它的功能:返回指定数据所在的索引,如果没有则返回-1。
那么我们在使用时通常是直接使用它这个数组内置方法
今天这篇文章我们便要自己封装一个函数,用来实现数组的内置方法indexOf的功能,已便我们对其有更好的理解!!
在此之前我们先来了解一下数组的内置方法indexOf的一些基本共功能及细节
var arr = ["hello", 1, 2, 3, 4, 5, 6, "world"]; var res = arr.indexOf(2); console.log(res); //返回索引2
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的功能的主要内容,如果未能解决你的问题,请参考以下文章