zoukankan      html  css  js  c++  java
  • ES6之Array.includes()函数

    一、定义

    includes() 方法用来判断一个数组是否包含一个指定的值,如果是返回 true,否则false。

    二、语法

    arr.includes(searchElement)
    arr.includes(searchElement, fromIndex)
    //searchElement:必须。需要查找的元素值。
    //fromIndex:可选。表示判断的起始位置。从该索引处开始查找 searchElement。
    //如果为负值,则按升序从
    array.length + fromIndex 的索引开始搜索。默认为 0。
    //eg:

    const arr = ['a', 'b', 'c', NaN];
    console.log(arr.includes("a"));//true
    console.log(arr.includes(NaN));//true
    console.log(arr.includes("a",0));//true
    console.log(arr.includes("a",2));//false

    三、其他

    如果fromIndex 大于等于数组长度 ,则返回 false 。该数组不会被搜索:

    var arr = ['a', 'b', 'c']; 
    arr.includes('c', 3);   //false
    arr.includes('c', 100); // false

    如果 fromIndex 为负值,计算出的索引将作为开始搜索searchElement的位置。如果计算出的索引小于 0,则整个数组都会被搜索。

    // 数组长度是3
    // fromIndex 是 -100
    // computed index 是 3 + (-100) = -97
     
    var arr = ['a', 'b', 'c'];
     
    arr.includes('a', -100); // true
    arr.includes('b', -100); // true
    arr.includes('c', -100); // true

    四、与es5的indexOf区别

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

    2、在ES5,Array已经提供了indexOf用来查找某个元素的位置,如果不存在就返回-1,但是这个函数在判断数组是否包含某个元素时有两个小不足,第一个是它会返回-1和元素的位置来表示是否包含。另一个问题是不能判断是否有NaN的元素,如果数组中有NaN,你又正好需要判断数组是否有存在NaN,这时你使用indexOf是无法判断的,你必须使用includes这个方法。

    而ES6提供的Array.includes()函数判断是否包含某一元素,除了不能定位外,解决了indexOf的上述的两个问题。它直接返回true或者false表示是否包含元素,对NaN一样能有效。

    3、都有自己的特点,但是那么时候使用includes什么时候使用indexOf还是要看情况来决定,如果你想要查找某个元素在数组中的位置,你就用indexOf,如果你只是想知道数组中是否存在某个元素,你用includes方法比较合适的。

     五、查看数组原型链

  • 相关阅读:
    JAVA 关键字
    github 上传代码到仓库

    创建链表及使用
    关于MAP文件的使用(转贴)
    styledcomponent使用(一)
    关于EDM模型中多个实体之间循环引用导致保存数据失败的解决方案一例
    C#格式化字符串
    [原]存取AVD设备SD卡中的文件
    NSStirng、NSArray、以及枚举(Method小集合)
  • 原文地址:https://www.cnblogs.com/songForU/p/10551243.html
Copyright © 2011-2022 走看看