简介
Array.prototype.includes()
是一个用来判断一个数组是否包含一个特定元素的数组方法,如果包含则返回 true
,否则返回 false
。该方法已经在 ES7 中被正式纳入标准。
与之前使用的 indexOf()
方法相比,includes()
更加直观易懂、简单易用,同时能够处理 NaN 和 -0,不需要额外的处理逻辑。
用法
includes()
方法的语法如下:
arr.includes(searchElement[, fromIndex])
其中,arr
表示需要检索的数组,searchElement
表示需要查找的元素,fromIndex
是可选的,表示从数组中的哪个元素开始查找。
以下是一个简单的示例:
const arr = [1, 2, 3, 4]; console.log(arr.includes(2)); // true console.log(arr.includes(5)); // false
需要注意的是,includes()
方法是区分数据类型的。也就是说,如果需要在数组中查找一个字符串,需要传入一个字符串,而不是一个数值。
const arr = ['apple', 'banana', 'pear']; console.log(arr.includes('banana')); // true console.log(arr.includes(1)); // false
另外,includes()
方法支持传入第二个参数 fromIndex
,该参数可以指定从哪一个下标开始查找。
const arr = [1, 2, 3, 4, 5]; console.log(arr.includes(1)); // true console.log(arr.includes(1, 1)); // false console.log(arr.includes(2, 2)); // true
总结
Array.prototype.includes()
相比 indexOf()
,更加直观易懂、简单易用,同时能够处理 NaN 和 -0,不需要额外的处理逻辑。在编程中,我们可以优先考虑使用 includes()
方法。
// 判断一个元素是否在数组中 const arr = [1, 2, 3, NaN]; if (arr.includes(2)) { console.log('2 in arr'); } // 判断一个元素是否不存在于数组中 if (!arr.includes('hello')) { console.log('hello not in arr'); } // 从指定的下标开始查找,判断一个元素是否在数组中 if (arr.includes(NaN, 3)) { console.log('NaN in arr after index 3'); }
参考
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65926296eb4cecbf2d732611