数组的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,表示有;
参考文献:
推荐阅读
-
sql中varchar和nvarchar的区别与使用方法
-
Python中函数和方法的区别
-
PHP实现数组转JSon和JSon转数组的方法示例
-
php中使用key,value,current,next和prev函数遍历数组的方法
-
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
-
数组和字符串的方法整合
-
对python requests的content和text方法的区别详解
-
详解Node.js中path模块的resolve()和join()方法的区别
-
浅谈Java异常的Exception e中的egetMessage()和toString()方法的区别
-
Python探索之静态方法和类方法的区别详解