zoukankan      html  css  js  c++  java
  • indexOf与includes的区别

    indexOf与includes的区别:https://blog.csdn.net/gtLBTNq9mr3/article/details/78700118

    includes和indexOf相比较:
    相同点:二者所传的参数是一样的,第一个参数传要判断的元素,第二个参数传开始检索的下标位置
    不同点:返回值不同
    1、indexOf:返回的是元素的所在下标,如果不存在则返回-1
    优点:元素存在可获取到元素的位置
    缺点:(1)无法判断是否有NaN的元素(2)返回的值不够语义化,需要我们进行处理

    2、includes:返回一个Boolean值,有:true,没有:false
    优点:(1)可判断NaN元素(2)返回值十分语义化,不需要再次处理
    缺点:无法获取元素的下标
    ---------------------
    作者:wangcuiling_123
    来源:CSDN
    原文:https://blog.csdn.net/wangcuiling_123/article/details/78523066
    版权声明:本文为博主原创文章,转载请附上博文链接!

    从ES6部署includes方法,好像indexOf就失去了它的用武之地了,到底indexOf有什么不足,这篇文章就要来介绍这两个方法之间的区别。

    看一个函数,先看他们的返回值,一个是返回数值型的,一个是返回布尔型的,所以在if条件判断的时候includes要简单得多,而indexOf 需要多写一个条件进行判断。

    var ary = [1];

    if (ary.indexOf(1) !== -1) {

        console.log("数组存在1")

    }

    if (ary.includes(1)) {

        console.log("数组存在1")

    }

    如果数组中有NaN,你又正好需要判断数组是否有存在NaN,这时你使用indexOf是无法判断的,你必须使用includes这个方法。

    var ary1 = [NaN];

    console.log(ary1.indexOf(NaN))//-1

    console.log(ary1.includes(NaN))//true

    当数组的有空的值的时候,includes会认为空的值是undefined,而indexOf不会。

    var ary1 = new Array(3);

    console.log(ary1.indexOf(undefined));//-1

    console.log(ary1.includes(undefined))//true

    总结,到底什么时候使用includes什么时候使用indexOf还是要看情况来决定,如果你想要查找某个元素在数组中的位置,你就用indexOf,如果你只是想知道数组中是否存在某个元素,你用includes方法比较合适的。

  • 相关阅读:
    华为机试题01背包问题
    丑数
    动态规划(1)
    Linux 后台启动 Redis
    redis.exceptions.ResponseError: MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk.
    SQLServer从渣仔到小白
    cmder 增强型命令行工具
    总结在部署分布式爬虫环境过程中常见的若干问题
    【pymongo.errors】Cursor not found
    浅析scrapy与scrapy_redis区别
  • 原文地址:https://www.cnblogs.com/bydzhangxiaowei/p/10475589.html
Copyright © 2011-2022 走看看