js中indexOf()的使用

Posted 前端小白兔爱前端

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中indexOf()的使用相关的知识,希望对你有一定的参考价值。

  • 语法:
    String.IndexOf(Char, [startIndex], [count]):

  • 定义
    ----返回指定字符在原字符串中的第一个匹配项的索引。如省略第二个参数,则将从字符串的首字符开始检索。
    -----可指定字符开始检索位置和指定长度的字符,若没有找到该字符,则返回 -1。
    -----也可以判断数组中是否包含某个值。

  • 用法及实例
    示例1:查找字符串中某一字符从头开始第一次出现的索引

 var str = "Hello world!"
   console.log(str.indexOf("o")) //4
  console.log(str.indexOf("Hello")) //0
  console.log(str.indexOf("World")) //-1
  console.log(str.indexOf("world")) //6

需要注意的是,当匹配到一个字符串时,会返回字符串中第一个字符的索引,如上例匹配word时,返回的是6。

示例2:查找字符串中某一字符从指定位置开始第一次出现的索引

   var str = "Hello world! wo shi ooo"
  console.log(str.indexOf("o",8)) //14
  • 有indexOf,也就有lastIndexOf,它和indecOf相反,是匹配字符串最后一次出现的索引
    var str = “Hello world! wo shi oll”
    onsole.log(str.indexOf(“o”)) //4
    console.log(str.lastIndexOf(“o”)) //20`

实例三:判断字符串中是否包含某个字符的情景中:

var str = "Hello world! wo shi oll"
console.log(str.indexOf("World") == -1) //true
console.log(str.indexOf("world") == -1) //false

示例4:判断数组中是否包含某个元素

const arr = [1,5,3,8,22]
console.log(arr.indexOf(2))//不存在,返回-1
console.log(arr.indexOf(8))//存在,返回索引3

js中使用indexOf()方法是提示(对象不支持此属性或方法)如何解决?

参考技术A

js中使用indexOf()方法是提示(对象不支持此属性或方法)解决办法:

    “对象不支持此属性或方法” 表示 javascript对象没有这个方法,无法调用,比如
    A.B() 当A对象没有B方法的时候,会报这个异常。

    因为javascript是脚本语言,解释执行,所以只有在执行的过程中才会报错,而编译语言,像java,c等在编译的时候就会报错。

    A.indexOf() 在原生JS中只能用于String对象,比如var s=“123”; alert(s.indexOf("1")) // 不会报错

    var s=123; alert(s.indexOf("1")) // 报错,因为s是number,这时候你需要把s转换成string才可以运行。

如以上回答未解决问题,请尝试:

var parr = ["a","b","c","d"];

判断parr 数组中是否存在a

parr.indexOf("a")==-1 在ie8下会提示对象不支持indexOf属性或方法

解决办法:

用jquery里的$.inArray替代indexOf

$.inArray(“a”, parr)==-1

以上是关于js中indexOf()的使用的主要内容,如果未能解决你的问题,请参考以下文章

Javascript:未捕获的 TypeError:无法读取 null 的属性“indexOf”

Vue indexOf vs vanilla javascript用于从数组中选择对象

javascript数组有没有indexOf方法

js中IndexOf()是干啥用的呢?怎么用?

前端面试 JavaScript— JS判断数组中是否包含某个值

前端面试 JavaScript— JS判断数组中是否包含某个值