es6怎么判断数组中是否包含某一项值

在es6中,可以利用数组的includes()方法来判断数组中是否包含某一项值,该方法可以用来检测数组中是否包含某个值,语法“数组对象.includes(值)”。

es6怎么判断数组中是否包含某一项值

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

在ES5,Array已经提供了 indexOf用来查找某个元素的位置,如果不存在就返回-1,但是这个函数在判断数组是否包含某个元素时有两个小不足,第一个是它会返回-1和元素的位置来表示是否包含,在定位方面是没问题,就是不够语义化。另一个问题是不能判断是否有NaN的元素。

例如:

const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]console.log('%s', arr1.indexOf(NaN))

登录后复制

结果:

-1

登录后复制

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

const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]console.log('%s', arr1.includes('c'))console.log('%s', arr1.includes('z'))console.log('%s', arr1.includes(NaN))

登录后复制

结果:

truefalsetrue

登录后复制

includes()函数的第二个参数表示判断的起始位置。

const arr1 = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', NaN]console.log('%s', arr1.includes('d', 1))console.log('%s', arr1.includes('d', 3))console.log('%s', arr1.includes('d', 4))

登录后复制

结果:

truetruefalse

登录后复制

第二个参数也可以是负数,表示从右数过来第几个,但是不改变判断搜索的方向,搜索方向还是从左到右。

console.log('%s', arr1.includes('k', -1))console.log('%s', arr1.includes('k', -2))console.log('%s', arr1.includes('i', -3))

登录后复制

结果:

falsetruefalse

登录后复制

总结:

includes()方法,用来检测数组中是否包含某个值,可以判断NaN,而且直接返回true/false,比较直观;

indexOf()方法,用来查找某个元素的位置,不能判断NaN,返回-1,即不包含,非-1即当前包含的位置。

两个方法各有长短,依实际情况定。如果元素包含NaN,就用includes(),否则两者均可。

【相关推荐:javascript视频教程、web前端】

以上就是es6怎么判断数组中是否包含某一项值的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2702369.html

(0)
上一篇 2025年3月7日 19:23:22
下一篇 2025年3月6日 20:18:17

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • es6怎么判断数组是否含有某个子元素

    方法:1、使用indexOf()函数,语法“数组对象.indexOf(值)”,如果返回元素位置则含有,如果返回“-1”则不含有;2、使用includes()函数,语法“数组对象.includes(值)”,返回true则含有,反之则不含有。 …

    2025年3月7日 编程技术
    200
  • es6中怎么将数组转为对象

    转换方法:1、利用fromEntries()和map()函数,语法“Object.fromEntries(arr.map(item => [item.key, item]))”语句;2、利用扩展运算符“…”,语法“{&#8…

    2025年3月7日
    200
  • es6怎么判断变量是不是数组

    在es6中,可以利用Array的isArray()方法来判断变量是不是数组,该方法用于判断一个对象是否为数组类型,语法“Array.isArray(obj)”;如果对象是数组返回true,否则返回false。 本教程操作环境:windows…

    2025年3月7日
    200
  • es6怎么判断是不是数字

    在es6中,可以利用Number对象的isFinite()方法来判断值是不是数字,该方法可以检测传入的参数值是否是一个有穷数字;语法“Number.isFinite(值)”。 本教程操作环境:windows7系统、ECMAScript 6版…

    2025年3月7日
    200
  • es6怎么将对象转成数组

    在es6中,可以利用Array对象的from()方法来将对象转成数组,该方法可以将一个类数组对象或者可遍历对象转换成一个真正的数组;语法“Array.from(对象)”。 本教程操作环境:windows7系统、ECMAScript 6版、D…

    2025年3月7日
    200
  • javascript数据类型学习之浅析Symbol类型

    本篇文章带大家了解一下es6新增的数据类型:symbol,聊聊symbol类型的声明方式和使用方法,希望对大家有所帮助! Symbol一种新的原始数据类型,表示独一无二的。是javascript中第七种数据类型。另外六种分别是:undefi…

    2025年3月7日
    200
  • es6的await用法是什么

    es6中,await用于等待一个promise的异步请求,异步操作完成后恢复async函数的执行,该关键字只能在“async function”中使用,语法为“async function(){await=返回promise的异步请求}”。…

    2025年3月7日
    200
  • es6中promise对象的状态有哪些

    状态:1、pending进行中的状态,该状态进行初始化,在过程中还没有结果;2、fulfilled成功状态,resolved状态会触发后续的then回调函数;3、rejected失败状态,rejected状态会触发后续的catch回调函数。…

    2025年3月7日
    200
  • es6新增数组方法是什么

    新增数组方法:1、from(),可将类数组或可迭代对象转为真正的数组;2、of(),可将一组值转换为数组,它弥补数组构造函数Array()的不足;3、find()和findIndex(),返回第一个符合条件的数组元素;4、fill()等等。…

    2025年3月7日
    200
  • 你说你会用ES6,那赶紧用上啊!

    本篇文章给大家分享一位leader的十点关于es6的吐槽,并对应补充一些相关知识,希望对大家有所帮助! “你会用ES6,那倒是用啊!”:这是一位leader在一次代码评审会对小组成员发出的“怒吼”,原因是在代码评审中发现很多地方还是采用ES…

    2025年3月7日
    200

发表回复

登录后才能评论