在学习或开发过程中,经常会有朋友需要使用到一个数组方法-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的功能的更多相关文章

  1. day28 面向对象:反射,内置函数,类的内置方法

    面向对象进阶博客地址链接: http://www.cnblogs.com/Eva-J/articles/7351812.html 复习昨日内容: # 包 # 开发规范 # # hashlib # 登录 ...

  2. python day21 ——面向对像-反射 getattr,内置方法

    一.反射:用字符串数据类型的变量名来访问这个变量的值 上代码^_^ # class Student: # ROLE = 'STUDENT' # @classmethod # def check_cou ...

  3. Python进阶-XVIV 类的内置方法:__str__ 、__repr__、析构函数(__del__)、双下的call,eq,new,hash 以及item相关的三个方法

    类的内置方法 它与内置函数有紧密的联系,有的内置函数就是调用的内置方法. 在顶级父类obj中有: 两个双下方法 obj.__str__ str(obj) obj.__repr__ repr(obj) ...

  4. python之字符串,列表,字典,元组,集合内置方法总结

    目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...

  5. 第8.14节 Python类中内置方法__str__详解

    一. object类内置方法__str__和函数str 类的内置方法__str__和内置函数str实际上实现的是同一功能,实际上str调用的就是__str__方法,只是调用方式不同,二者的调用语法如下 ...

  6. 第8.13节 Python类中内置方法__repr__详解

    当我们在交互环境下输入对象时会直接显示对象的信息,交互环境下输入print(对象)或代码中print(对象)也会输出对象的信息,这些输出信息与两个内置方法:__str__方法和__repr__方法有关 ...

  7. JavaScript封装一个函数效果类似内置方法concat()

    JavaScript封装一个函数效果类似内置方法concat() 首先回忆concat()的作用: concat() 方法用于连接两个或多个数组.该方法不会改变现有的数组,而仅仅会返回被连接数组的一个 ...

  8. 0513JS数组内置方法、数学函数、时间函数

    |数组中常用的内置方法|-push()与pop()|--push()是往数组的尾部添加,同时返回新数组的长度 var attr = [1,2,3,4,5];var attr2 = [6,7,8,9,0 ...

  9. [JSP][JSTL]页面调用函数--它${fn:}内置函数、是推断字符串是空的、更换车厢

    页面中调用函数--之${fn:}内置函数 函数描写叙述 fn:contains(string, substring) 假设參数string中包括參数substring,返回true fn:contai ...

随机推荐

  1. 【Tool】使用IDEA创建简单的Java项目

    IDEA创建简单的Java项目 打开IDEA进入首页面,点击 Create New Project 点选第一项就是了,SDK就是我们的JDK,,这里我已经装好了JDK和JDK的环境变量 IDEA就能自 ...

  2. webWMS开发过程记录(五)- 详细设计之系统界面框架设计

    界面区域划分 使用frameset分了上中下三个区域 上:显示系统名称和用户信息,以及一些提示信息(需通过Ajax定时更新提示信息),显示高度固定 中:再次使用frameset分成左右区域 左:显示导 ...

  3. Spring 下,关于动态数据源的事务问题的探讨

    开心一刻 毒蛇和蟒蛇在讨论谁的捕猎方式最高效. 毒蛇:我只需要咬对方一口,一段时间内它就会逐渐丧失行动能力,最后死亡. 蟒蛇冷笑:那还得等生效时间,我只需要缠住对方,就能立刻致它于死地. 毒蛇大怒:你 ...

  4. 基于Python的Webservice开发(四)-泛微OA的SOAP接口

    一.功能需求 泛微e-cology可以在流程中调用Webservice接口实现与其他系统的联动等复杂功能.但是目前泛微文档中仅提供了调用的方法,但是没有关于接口的相关开发信息. 本次案例是用Pytho ...

  5. SpringBoot集成Shiro实现权限控制

    Shiro简介 Apache Shiro是一个功能强大且易于使用的Java安全框架,用于执行身份验证,授权,加密和会话管理.使用Shiro易于理解的API,您可以快速轻松地保护任何应用程序-从最小的移 ...

  6. java-锁膨胀的过程

    先来看个奇怪的demo public class A { int i=0; // boolean flag =false; public synchronized void parse(){ i++; ...

  7. redis: Jedis API(十四)

    1.Key操作 package com.kuang; import redis.clients.jedis.Jedis; import java.util.Set; public class Test ...

  8. Java工作流引擎-集团模式下的权限 设计与实现

    关键字 工作流开发框架权限设计.用户组.岗位.集团模式应用. java工作流程引擎, .net 工作流引擎,工作流开发框架 相关的表结构 -- 相关组织-表结构. SELECT No,Name,Par ...

  9. Python修改paramiko模块开发运维审计保垒机

    目前市面上,专门做IT审计堡垒机的厂商有很多,他们的产品都有一个特点,那就是基本上每台的售价都在20万以上.像我们做技术的,不可能每次待的公司都是大公司,那么在小公司,是不太可能投资20多万买一台硬件 ...

  10. Java 虚拟机中的运行时数据区分析

    本文基于 JDK1.8 阐述分析 运行过程 我们都知道 Java 源文件通过编译器编译后,能产生相应的 .Class 文件,也就是字节码文件.而字节码文件通过 Java 虚拟机中的解释器,编译成特定机 ...