ES7 |数组扩展

110 阅读1分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

ES系列文章

ES7数组扩展

  • Array.prototype.includes(searchElement,fromIndex)
  • includes VS indexOf

includes方法

includes方法返回一个布尔值,用来检查数组中是否包含某个值

Array.prototype.includes(searchElement,fromIndex)

//基本用法
//includes -> boolean
const arr = ['es6', 'es7', 'es8']
console.log(arr.includes('es7'))
console.log(arr.includes('es9'))

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

console.log(arr.includes('es7', 1))
console.log(arr.includes('es7', 2))
console.log(arr.includes('es7', -1))
console.log(arr.includes('es7', -2))

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

includes VS indexOf

console.log(arr.indexOf('es7'))
console.log(arr.indexOf('es7') > -1)

const arr = ['es6', ['es7', 'es8'], 'es9']
console.log(arr.includes(['es7', 'es8'])) // false
console.log(arr.indexOf(['es7', 'es8'])) // -1

只能判断基本数据类型,不能判断引用数据类型,比如对象类型的数组,二维数组,这些是无法判断的。

const arr = ['es6', 'es7', NaN, 'es8', 2]
console.log(arr.includes(NaN)) // true
console.log(arr.indexOf(NaN)) // -1

includes是可以检测NaN的,indexOf不能检测NaN是否存在。

console.log(arr.includes('2')) // false
console.log(arr.indexOf('2')) // -1

不仅判断值是否相等,还要判断类型是否相等。

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

一个前端小白,若文章有错误内容,欢迎大佬指点讨论!