在 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. 基于Redis实现分布式应用限流--转
  2. LongFormer:用稀疏自注意力拓展模型文本容纳量
  3. 初中知识会不会影响计算机,初中计算机论文
  4. Lambdas中的例外:有点混乱的优雅解决方案
  5. Oracle客户端安装以及PL/SQL Developer安装方法
  6. 二维数组按指定的键值排序
  7. springboot relativepath 不存在_MyBatis初级实战之一:Spring Boot集成
  8. 阿里云云计算 42 CDN中的常用名词
  9. NOIP2016普及组T1(买铅笔)题解
  10. yum -y --downloadonly --downloaddir=/root/ruiy update
  11. FTP服务器的搭建,可两个电脑通过局域网进行传输
  12. jenkins使用报错记录exception message 137
  13. SAS中output的运用
  14. 上海南京路步行街向全球征集标识Logo及吉祥物设计
  15. c语言实现按键的抖动与消除,【Verilog HDL 训练】第 09 天(按键消抖)
  16. 360安全卫士大战“病毒之王”——最新磁碟机变种
  17. 数字图像处理技术及实用 MATLAB实验报告及PS作业
  18. 卷积的数学理解和图像处理
  19. 华为数字化转型之道 实践篇 第六章 数字化重构业务运作模式
  20. java list 包含_如何判断ListStringlist中是否包含某个字符串

热门文章

  1. jqgrid下载,引入
  2. hibernate简单应用
  3. IIS配置教程。。。。。
  4. 设计师应该尊重技术的限制
  5. windows xp 下使用 windows 2003的远程桌面
  6. 程序员对学历高吗?毕业是考研还是实习?
  7. 极目眺望的tiantianguandan
  8. 飞秋 包括《java就业培训课程》
  9. 写完程序 看 蜡笔小新 的有木有
  10. 一些比较有用的SQL操作,2011最新整理