【问题标题】:Difference between string.indexOf() and string.lastIndexOf()? [closed]string.indexOf() 和 string.lastIndexOf() 的区别? [关闭]
【发布时间】:2014-10-10 23:36:55
【问题描述】:

JavaScript 中的string.indexOf()string.lastIndexOf() 有什么区别?

var temp = state.indexOf("tmp");    
var temp = state.lastIndexOf("tmp");

【问题讨论】:

  • the manual 中有什么你不清楚的地方吗?
  • 我有这个问题,但我不明白,为什么 stackoverflow 成员对此投反对票?

标签: javascript


【解决方案1】:

来自 MDN:

indexOf() 方法返回调用字符串中的索引 指定值第一次出现的对象,lastIndexOf() 方法返回指定值最后一次出现在调用 String 对象中的索引

所以indexOf 将返回该值的第一次出现,lastIndexOf 将返回该值的最后一次出现。

示例(从 MDN 复制):

var anyString = "Brave new world";
var a = anyString.indexOf("w")); // result = 8
var b = anyString.lastIndexOf("w")); // result 10

如果没有找到值,这两个方法都返回 -1

更多:

【讨论】:

    【解决方案2】:

    string.indexOf() 方法返回指定值在字符串中第一次出现的位置。

    string.lastIndexOf() 方法返回指定值在字符串中最后一次出现的位置。

    【讨论】:

      【解决方案3】:

      indexOf() 函数匹配第一次出现,LastindexOf() 函数匹配最后一次出现

      这两个函数都用于在 StringArray 中查找索引;

      String 操作的示例代码

      var state = "abcdtmpefgtmp";
      var temp =state.indexOf("tmp"); //match first occurance
      console.log(temp);
      //>4
      
      var temp =state.lastIndexOf("tmp"); //match last occurance
      console.log(temp);
      //>10
      

      Array 操作的示例代码

      var state = ["abc", "tmp", "efg", "tmp"];
      var temp =state.indexOf("tmp");
      console.log(temp);
      //>1
      var temp = state.lastIndexOf("tmp");
      console.log(temp);
      //>3
      

      【讨论】:

        【解决方案4】:

        lastIndexOf() 方法返回指定值在字符串中最后出现的位置,而 indexOf() 返回指定值在字符串中第一次出现的位置。

        在以下示例中:

         function myFunction() {
             var str = "Hello planet earth, you are a great planet.";
             var n = str.lastIndexOf("planet");
             var n2 = str.indexOf("planet");
        
         }
        

        n 将返回 36 n2 将返回 6

        如果您有任何问题,请告诉我!

        【讨论】:

          【解决方案5】:

          基本上indexOflastIndexOf 是原生javascript 函数。这两个函数都可以在StringsArrays 上应用。

          indexOf 返回元素匹配的第一个索引。

          另一方面,lastIndexOf 返回元素匹配的最后一个索引。

          "myname".indexOf('m') //returns 0
          
          "myname".lastIndexOf('m') //returns 4
          

          【讨论】:

          • 它们不是纯 JavaScript 函数,而是原生函数。
          • 纯 JavaScript 函数是 JavaScript 本身的实现 :)
          • 哦,谢谢,我不知道这个。
          猜你喜欢
          • 2013-08-11
          • 1970-01-01
          • 2012-12-16
          • 2011-12-30
          • 2014-11-01
          • 2013-08-07
          • 2016-12-17
          • 2020-06-09
          • 2013-01-04
          相关资源
          最近更新 更多