indexOf()和includes()都是Array的方法,前者是ES6中的功能,后者是ES7中的新功能。当判断一个数组中是否有某一项数值时,indexOf()和includes()都可以实现。
includes()是查找一个数值在不在当前数组中,若在返回true,否则返回false。
例如:let arr = [2,4,6,8]
arr.includes(2)
arr.includes(3)
该方法还可以接收2个参数:要查找的数值和开始搜索的索引
例如:
arr.includes(4, 3)
arr.includes(4, 1)
indexOf()查找一个数值在不在当前数组中,若在就返回第一次该数值出现的索引,否则返回-1。
arr.indexOf(2)
arr.indexOf(3)
这两种方法都只能判断简单类型的数据,无法判断对象类型数组、二维数组等复杂类型的数据。
例如:let array = [1, [2, 3], 4]
array.includes([2, 3])
array.indexOf([2, 3])
使用时,如果需要返回数值索引,选择indexOf();如果只是判断该数值是否存在在该数组中,可以选择includes().