前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ES7Array扩展

ES7Array扩展

作者头像
19组清风
发布2021-11-15 15:16:31
2470
发布2021-11-15 15:16:31
举报
文章被收录于专栏:Web Front EndWeb Front End

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

代码语言:javascript
复制
console.log(array1.find(function(item) {
    return item === 2
}))
复制代码

或者

代码语言:javascript
复制
console.log(array1.filter(function(item) {
    return item === 2
}).length > 0)
复制代码

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

基本用法

代码语言:javascript
复制
const arr = ['es6', 'es7', 'es8']
console.log(arr.includes('es6')) // true
console.log(arr.includes('es9')) // false
复制代码

接收俩个参数

要搜索的值和搜索的开始索引。第二个参数可选。从该索引处开始查找 searchElement。如果为负值,

代码语言:javascript
复制
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()比较

代码语言:javascript
复制
['a', 'b', 'c'].includes('a') //true
['a', 'b', 'c'].indexOf('a') > -1 //true

console.log(arr.indexOf('es7')) // 1
console.log(arr.indexOf('es7') > -1) // true
复制代码

注意

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

代码语言:javascript
复制
const arr = [1, [2, 3], 4]
arr.includes([2, 3]) //false
arr.indexOf([2, 3]) //-1
复制代码

优缺点比较

两者都是采用===的操作符来作比较的,不同之处在于:对于NaN的处理结果不同。我们知道js中 NaN === NaN 的结果是false, indexOf()也是这样处理的,但是includes()不是这样的。

代码语言:javascript
复制
const demo = [1, NaN, 2, 3]
demo.indexOf(NaN) //-1
demo.includes(NaN) //true
复制代码

总结

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020年09月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本用法
  • 接收俩个参数
  • 与indexOf()比较
  • 优缺点比较
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档