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

indexOf与includes的区别的更多相关文章

  1. 关于ES5的indexof()和ES7的includes()的区别

    早es5的时候就有了查找数组中是否包含某个值的API  indexOf(); 使用方法很简单,比如有个数组是: var arr=[2,3,4,"php"] 如果我们想知道数组中有没 ...

  2. indexOf与includes的比较

    indexOf和includes都代表检测数组或字符串中是否包含某一个元素 其中indexOf返回的是数值类型,而includes返回的是布尔类型 var ary = [,,]; console.lo ...

  3. indexOf()、includes()、startsWith()、endsWith()

    是否包含字符串三种新方法 传统上,JavaScript只有 indexOf 方法,可以用来确定一个字符串是否包含在另一个字符串中.ES6又提供了三种新方法. includes():返回布尔值,表示是否 ...

  4. js中字符串函数indexOf与search的区别

    IndexOf()方法是用来判断一个字符串是否存在于一个更长的字符串中.从长字符串左端到右端来搜索,如果存在该子字符串就返回它所处的位置(即索引).如果在被搜索的字符串没有找到要查找的字符串返回-1. ...

  5. indexOf 和 lastIndexOf的区别

    indexOf 和  lastIndexOf 是什么? indexOf 和 lastIndexOf 都是索引文件 indexOf 是查某个指定的字符串在字符串首次出现的位置(索引值) (也就是从前往后 ...

  6. indexOf 和 lastIndexOf 的区别

    indexOf 和 lastIndexOf 是什么? indexOf 和 lastIndexOf 都是索引文件 indexOf 是查某个指定的字符串在字符串首次出现的位置(索引值) (也就是从前往后查 ...

  7. js数组中容易误用的一些方法

    1.every和some 两个方法的参数都是一个函数,函数的有3个参数,依次是当前值value,索引index,数组array every判断数据中的每一项是否满足某个条件,如果满足就返回true,有 ...

  8. 数组Array和字符串String的indexOf方法,以及ES7(ES2016)中新增的Array.prototype.includes方法

    前言 我们在判断某一个字符是否存在于一个字符串中或者某一个值是否存在于一个数组中时,ES7之前我们需要使用indexOf,ES7引入了新的方法includes 语法 数组:Array.inexOf(s ...

  9. JS 数组位置方法 indexOf()和lastIndexOf()的理解

    var numbers = [1,3,5,7,9,4,3,2,1]; console.log(numbers.indexOf(5)); //从数组的0位开始查找 5 位于数组里面的位置 输出2 首先 ...

随机推荐

  1. window.onload和document.ready的区别

    window.onload和document.ready虽然两个方法的运行效果都一样,但他们之间是存在着区别的: 一.从执行的时间 window.onload在dom文档结构加载完毕以后就可以执行,不 ...

  2. 行人重识别(ReID) ——数据集描述 DukeMTMC-reID

    数据集简介 DukeMTMC 数据集是一个大规模标记的多目标多摄像机行人跟踪数据集.它提供了一个由 8 个同步摄像机记录的新型大型高清视频数据集,具有 7,000 多个单摄像机轨迹和超过 2,700 ...

  3. 实现 unity MonoBehaviour API5.4 的消息

      顺序(第一次执行.忽略循环) 方法 说明 Editor 1 void Reset() 重置为默认值 ------------------------------------------------ ...

  4. golang中读取文件

    读文件 方式1 #利用ioutil.ReadFile 直接从文件读取到[]byte中# file, err := ioutil.ReadFile("file/test.txt") ...

  5. uboot tag存储主要部分代码

    https://www.cnblogs.com/pokerface/p/5217106.html     cmd_bootm.c //传递给内核的参数      int do_bootm (cmd_t ...

  6. 2018-10-16-weekly

    Algorithm 判断子序列 What 给定字符串 s 和 t ,判断 s 是否为 t 的子序列.如,"ace"是"abcde"的一个子序列,而"a ...

  7. 前端每日实战:86# 视频演示如何用纯 CSS 创作一个方块旋转动画

    效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gjgyWm 可交互视频 此视频是可 ...

  8. python学习笔记(十二)随机数模块

    import random,string print(random.randint(1,199))#1-199随机取一个整数,包含199 print(string.digits)#所有的数字0-9 p ...

  9. Nginx实现反向代理与负载均衡

    1.什么是反向代理 使用nginx实现反向代理,Nginx只做请求的转发,后台有多个http服务器提供服务,nginx的功能就是把请求转发给后面的服务器,决定把请求转发给谁. 2.在一个虚拟机上创建两 ...

  10. php对象转数组的函数

    关于php中想让对象以数组的形式访问,这时候就需要使用到get_object_vars()函数了.先来介绍一下这个函数. 官方文档是这样解释的: 1 array get_object_vars ( o ...