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

    自从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方法比较合适的。

  • 相关阅读:
    MVC中CheckBox
    Python中的高级数据结构
    高级正则表达式技术(Python版)
    程序员可以兼任项目经理吗?
    浅谈五大Python Web框架
    学习Python编程的11个资源
    Python 代码性能优化技巧
    python多线程ctrl-c退出问题
    Python 笔记 : 类和继承
    Python的OO思想
  • 原文地址:https://www.cnblogs.com/ygunoil/p/12339873.html
Copyright © 2011-2022 走看看