欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

数组的includes方法和indexOf的区别

程序员文章站 2022-07-16 14:27:50
...

数组的includes方法和indexOf的区别

都可以用来查询数组中是否存在某个元素(基本数据类型的元素,引用类型的不可以)

let arr = [ { name: 'ryan' }, 'a', 1, true, undefined, NaN, [ 1, 2 ], null ]

// 引用数据类型不可以
arr.indexOf({ name: 'ryan' }) // -1
arr.includes({ name: 'ryan' }) // false

arr.indexOf([ 1, 2 ]) // -1
arr.includes([ 1, 2 ]) // false

// 基本数据类型可以
arr.indexOf(null) // 7
arr.includes(null) // true

arr.indexOf(undefined) // 4
arr.includes(undefined) // true

// indexOf查询NaN时返回-1,includes查询时返回true
arr.indexOf(NaN) // -1
arr.includes(NaN) // true

indexOf返回的值的类型是数值,表示要查询的元素在数组中的索引值,如果数组中不存在,则返回-1;

includes返回的值的类型是布尔值,表示数组中是否存在索要查询的元素;

当数组中存在NaN时,用indexOf查询数组中是否存在NaN时,返回-1,表示没有;

当数组中存在NaN时,用includes查询数组中是否存在NaN时,返回true,表示有;

参考文献:

[1] indexOf和includes的区别