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

  • 相关阅读:
    CodeForces
    网络流
    poj 2185
    树的分治学习
    数位DP
    URAL 1969. Hong Kong Tram
    hdu 4759 Poker Shuffle
    hdu3712 Detector Placement
    分块思想
    莫比乌斯反演
  • 原文地址:https://www.cnblogs.com/ygunoil/p/12339873.html
Copyright © 2011-2022 走看看