自己封装函数,实现数组的内置方法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的功能的主要内容,如果未能解决你的问题,请参考以下文章

js中数组内置方法

Array数组循环全解1

js-DOM ~ 04. BOM:浏览器对象模型window. 定时器在线用户祝愿墙BOM的内置方法内置对象

js indexof()函数用法

删除数组重复项

php数组函数有哪些操作?php数组函数的应用