关于indexOf()的第二个参数

关于indexOf()的第二个参数

老师,这个arr6(indexOf(55, 2))表示从数组下标为2 的项开始查找55,那不是应该返回2吗?怎么返回的是4,这样不是跟没有第二个参数结果是一样的吗?


http://img1.sycdn.imooc.com//climg/6129f019096c54a204580118.jpg

http://img1.sycdn.imooc.com//climg/6129f06109176fa501300059.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕星星 2021-08-28 16:51:15

同学你好,索引的位置是数组中的位置,55在数组中索引是4,所以输出的是4 。并不会因为从索引为2的位置开始找,索引2就会变为索引0开始。

indexOf()方法使用第二个参数,一般就是看看从指定位置找是否有值,原本的位置并不会改变。

自己再理解下,祝学习愉快!

  • indexOf的第二个参数的索引为什么比当前值的索引大时,如果后面没有对应的值日,显示-1,但是indexOf的第二个参数比第一个值的索引小的时候,最后显示的就是第一个参数返回的的位置,例如

    <script>

            var arr = ['慕','课','网','网','易','课','堂'];

            console.log(arr.indexOf('网',1)); //显示2

            console.log(arr.indexOf('网',10)) //显示-1

            console.log(arr.indexOf('网',3)) //显示3

    </script>


    没搞懂第二个参数到底啥意思,难道要自己推规律么,为什么老是上课不讲解下第二个值的作用呢?


    2021-09-19 00:36:05
  • 同学你好,indexOf第二个参数是从哪里开始找。默认情况下找指定词汇从索引0开始,但是如果写了第二个参数,就会从第二个参数位置开始找。例如:

    console.log(arr.indexOf('网',1)),从索引1的位置开始找“网”,第一个“网”是索引2的位置。

    console.log(arr.indexOf('网',10)) ,从索引10的位置开始找“网”,数组长度为7,最后一项索引为6,不存在索引10,所以找不到,结果是-1 。

    console.log(arr.indexOf('网',3)) ,从索引3的位置开始找“网”

    https://img1.sycdn.imooc.com//climg/614abb7709250cfa03680039.jpg

    第一个就是,也就是索引3 。

    自己再理解下,祝学习愉快!

    2021-09-22 13:13:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师