在 ES7 之前想判断数组中是否包含一个元素,基本可以这样写:

let array1 = [1,2,3,4,5]
console.log(array1.find(function(item) {return item === 2
}))// 或者
console.log(array1.filter(function(item) {return item === 2
}).length > 0)

ES7引入的Array.prototype.includes()方法用来判断一个数组是否包含一个指定的值,根据情况,如果包含则返回 true,否则返回false

基本用法

const arr = ['es6', 'es7', 'es8']
console.log(arr.includes('es6')) // true
console.log(arr.includes('es9')) // false// 接收两个参数,第二个参数可选,从该索引处开始查找 searchElement。
const arr = ['es6', 'es7', 'es8']
console.log(arr.includes('es7', 1)) // true
console.log(arr.includes('es7', 2)) // false
console.log(arr.includes('es7', -1)) // false
console.log(arr.includes('es7', -2)) // true

indexOf()比较:

['a', 'b', 'c'].includes('a') //true
['a', 'b', 'c'].indexOf('a') > -1 //trueconsole.log(arr.indexOf('es7')) // 1
console.log(arr.indexOf('es7') > -1) // true

includes只能判断简单类型的数据,对于复杂类型的数据,比如对象类型的数组,二维数组,这些是无法判断的.

const arr = [1, [2, 3], 4]
arr.includes([2, 3]) //false
arr.indexOf([2, 3]) //-1

indexOfincludes不同:

const demo = [1, NaN, 2, 3]
demo.indexOf(NaN) //-1
demo.includes(NaN) //true

如果只想知道某个值是否在数组中存在,而并不关心它的索引位置,建议使用includes()。如果想获取一个值在数组中的位置,那么只能使用indexOf方法。

【ES7(2016)】Array.prototype.includes()相关推荐

  1. 【ES7(2016)】幂运算符**

    如果不使用任何函数,如何实现一个数的求幂运算? function pow(x, y) {let res = 1for (let i = 0; i < y; i++) {res *= x}retu ...

  2. 【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型

    前文提要:[js实例]js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法 6.操作方 ...

  3. 【WXS数据类型】Array

    属性: 名称 值类型 说明 [Array].constructor [String] 返回值为"Array",表示类型的结构字符串 [Array].length [Number] ...

  4. 【ES10(2019)】Array扩展 flat / flatMap

    Array.prototype.flat() flat()方法会按照一个可指定的深度递归遍历数组,并将所有元素与遍历到的子数组中的元素合并为一个新数组返回. const arr1 = [0, 1, 2 ...

  5. 【ES6(2015)】Array数组

    文章目录 1. ES5 中数组遍历方式 2. ES6 中数组遍历方式 for...of 3. Array.from() 4. Array.of() 5. Array.prototype.fill() ...

  6. 【BDTC 2016】蚂蚁金服人工智能部技术总监李小龙:人工智能驱动金融生活

    [CSDN现场报道]2016年12月8-10日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中国科学院计算技术研究所.中科天玑数据科技股份有限公司与CSDN共同协办,以"聚焦 ...

  7. 【SDCC 2016】蘑菇街、华为、阿里巴巴、58到家、同程旅游、链家网、京东的架构变迁与技术演进...

    [CSDN现场报道]2016年11月18日-20日,由CSDN重磅打造的年终技术盛会 -- "2016中国软件开发者大会"(Software Developer Conferenc ...

  8. 【BDTC 2016】工业大数据助力中国制造 帮助企业降本增收

    [CSDN现场报道]2016年12月8-10日,由中国计算机学会(CCF)主办,CCF大数据专家委员会承办,中国科学院计算技术研究所.中科天玑数据科技股份有限公司与CSDN共同协办,以"聚焦 ...

  9. 【SDCC 2016】电商架构专题干货七连发:探秘知名电商架构最佳技术实践

    [CSDN现场报道]2016年11月18日-20日,由CSDN重磅打造的年终技术盛会 -- "2016中国软件开发者大会"(Software Developer Conferenc ...

最新文章

  1. 高考631能上什么好的计算机学校,2021年高考630分能上什么大学 可以报哪些学校...
  2. Machine Learning | (9) 回归算法-线性回归
  3. mysql一主两从_MySQL 网络延迟参数设置建议
  4. android shape.xml 文件使用
  5. Spring Data Redis入门示例:基于RedisTemplate (三)
  6. 自动化运维之 部署Saltstack 并批量部署 Nginx
  7. as3 java 交互_AS3常用代码(三):AS3与HTML的交互
  8. 杨振宁讲(经典)数学笑话兼论数学和物理的关系
  9. 【ElasticSearch】Es 源码之 CleanerService 源码解读
  10. unity velocity_Unity动画系统详解5:BlendTree混合树是什么?
  11. Lc165-版本号比较
  12. 【5分钟 Paper】(TD3) Addressing Function Approximation Error in Actor-Critic Methods
  13. 使用Python下载百度云文件
  14. 南航计算机学院院长黄志球简历,南航计算机科学与技术学院导师介绍:沈国华...
  15. 计算机域 用户怎么设置,电脑怎么加域设置
  16. app内嵌h5一键加QQ群
  17. 展望|人脸识别技术发展现状及未来趋势
  18. ajax返回map的值,同时在sucess返回时的显示
  19. 自定义vue3.0日历组件
  20. 内存耗用:VSS/RSS/PSS/USS

热门文章

  1. Essential Studio for Windows Forms发布2017 v2,持office 2016和主题定制
  2. 解决gdal集成libkml的链接错误
  3. SQLServer 系统数据库
  4. 如何控制Yahoo! Slurp蜘蛛的抓取频度_国外博客资源站_百度空间
  5. 5寸屏,智能之外也可以当数码相框
  6. c#操作ecxel的一些资源(downmoon搜集)
  7. 数字化转型时代,企业管理者应该如何培养数据化管理思维?
  8. 抛弃Excel后工资翻倍,阿里大厂的数据报表全靠它
  9. 第一次CODING附parentElement.insertBefore使用详解
  10. 今天,终于又有时间更新飞鸽传书了。