当前位置 博文首页 > “Allen Su”的博客:【Dart】Dart 之 indexOf、lastIndexOf 获

    “Allen Su”的博客:【Dart】Dart 之 indexOf、lastIndexOf 获

    作者:[db:作者] 时间:2021-07-07 22:04

    Dart 获取指定元素在数组中的索引,用 indexOf() 方法或者 lastIndexOf() 方法,其中 indexOf 方法是从前往后找,lastIndexOf 方法是从后往前找,下面分别举例说明。

    indexOf 方法的源代码定义如下

    int indexOf(E element, [int start = 0]);
    

    返回值为 int ,第一个参数为要查找的元素,第二个参数为从哪个索引开始查找,是可选参数,默认为 0。

    例 1

      List<String> l1 = ["一月", "二月", "三月", "四月", "三月"];
      
      int a = l1.indexOf("三月"); // 获取数组中第一次出现"三月"元素的索引
      int b = l1.indexOf("三月", 3); // 从索引为 3 开始,查找第一次出现"三月"元素的索引
      int c = l1.indexOf("八月");
      
      print(a); // 2
      print(b); // 4
      print(c); // -1,数组中不存在八月,返回 -1
    

    说明:

    • 如果数组中有多个符合条件的元素,只返回正序时第一次出现该元素的索引
    • 如果数组中没有符合条件的元素,则返回 -1

    lastIndexOf 方法的源代码定义如下

    int lastIndexOf(E element, [int start]);
    

    和 indexOf 方法一样,只不过是从后向前倒序查找,相似之处不再赘述。

    例 2

      List<String> l2 = ["一月", "二月", "三月", "四月", "三月"];
      
      int d = l2.lastIndexOf("三月"); // 倒序获取数组中第一次出现"三月"元素的索引
      int e = l2.lastIndexOf("三月", 3); // 从索引为 3 开始,倒序查找第一次出现"三月"元素的索引
      int f = l2.lastIndexOf("十二月");
      
      print(d); // 4
      print(e); // 2
      print(f); // -1,数组中不存在十二月,返回 -1
    

    需要特别特别特别说明的是:lastIndexOf 方法只是从后向前查,返回的还是指定元素所在的索引,不要误以为索引也是从后先前由0开始了

    更多 Dart 中 List 数组的方法,推荐一篇博客 Dart 中 List 数组的常用方法


    结束语

    如果这篇博客有幸帮到了您,欢迎点击下方链接,和更多志同道合的伙伴一起交流,一起进步。

    开发者俱乐部
    在这里插入图片描述

    cs