zoukankan      html  css  js  c++  java
  • JS 数组位置方法 indexOf()和lastIndexOf()的理解

     var numbers = [1,3,5,7,9,4,3,2,1];
     console.log(numbers.indexOf(5)); //从数组的0位开始查找 5 位于数组里面的位置 输出2

    首先 理解一下 indexOf() 是从左往右查 参数“5” 位于数组的下标 所以这里打印出 2


    再看

     var numArr = ["hehe","sss","ddada","haha","xixi"];
     console.log(numArr.lastIndexOf("dadad")) dadad b不存在 输出-1

    console.log(numArr.lastIndexOf("haha"))  输出3

    为什么看起来好像跟indexOf()没什么区别呢??  我在修改一下

     var numArr = ["hehe","sss","ddada","haha","haha","xixi"]; 此时 haha有两个

    我们在打印看看

    console.log(numArr.lastIndexOf("haha"))  输出4

    这时输出的就是4 为什么呢?

    因为 lastIndexOf()是找某个字符串在数组里最后出现的哪一个的位置。


    // var arr = [1,2,3,4,5,6,7,1]
    // console.log(arr.lastIndexOf(7));//6 下标为6的位置
    // lastIndexOf 是从右向左查某个指定的字符串在字符串中最后一次出现的位置(也就是从后往前查)


    var arr = [1,2,3,4,5,6,7,1]
    console.log(arr.lastIndexOf(7,4));//6 下标为6的位置

    //4为查找的索引(也就是下标到4) 如数组里1,2,3,4,5 因为7不在该索引里 所以打印-1


     再看!!!

    // var arr = [1,2,3,4,5,5,6,7,1];
    // console.log(arr.indexOf(5));//4 下标为4的位置
    // console.log(arr.lastIndexOf(5));//5
    // 这个时候两个返回的索引值就不同了
    // because: 前面已经说了indexOf是从前向后查 而lastIndexOf是从后向前查 但是二者返回索引都是从前开始数数和计算的

  • 相关阅读:
    求逆序数 noj117
    背包问题 noj106
    士兵杀敌(二)
    Perl 日记模式操作(匹配与替换)
    Symbian中如何调试控制台程序
    Perl 日记references (often used)
    跨平台开发库(Symbian involved)日记1
    无法不想你,CLASSPATH,
    Symbian中不能跨越线程(RThread)使用的对象/组件(RSocket/Memery Heap,etc)
    几种设计模式分类的个人理解
  • 原文地址:https://www.cnblogs.com/yuobey/p/10326823.html
Copyright © 2011-2022 走看看