使用 ES7 中的 Array.prototype.includes 方法来替代 indexOf 方法
前言
JavaScript 是一门基于原型链的语言,所以数组(Array)是一种特殊的对象(Object)。在 JavaScript 的开发中,数组是使用最广泛的数据结构之一。
而在数组的操作中,判断一个元素是否存在于数组中是很常见的需求。在 ES5 中,我们可以使用数组的 indexOf 方法来实现。如下所示:
let arr = [1, 2, 3, 4, 5]; console.log(arr.indexOf(3)); // 2 console.log(arr.indexOf(6)); // -1
indexOf 方法可以返回元素在数组中的位置,如果不存在该元素则返回 -1。这个方法虽然可以实现我们的需求,但在某些情况下它的使用会带来麻烦。
在旧的版本中,我们需要使用严格相等(===)符号来判断想要查找的值是否存在,如果想要查找的值在数组中的值类型和查找值的类型不同,那么返回结果就会和我们期望的不一样,例如:
let arr = [1, 2, '3', 4, 5]; console.log(arr.indexOf(3)); // -1 console.log(arr.indexOf('3')); // 2 console.log(arr.indexOf('6')); // -1
indexOf 方法无法判断类型,它将字符串和数字视为相等的值。为了解决这个问题,我们可以使用 ES7 中新增的 Array.prototype.includes 方法。
Array.prototype.includes 方法的介绍
Array.prototype.includes 方法可以用来判断数组中是否包含某个元素。它的语法如下:
arr.includes(valueToFind[, fromIndex])
其中,valueToFind 表示被查找的元素,在函数执行期间进行比较,而 fromIndex 是数组中查找的起始位置,它可以省略。当 fromIndex 为负数时,会从数组的末尾开始查找。
与 indexOf 方法不同的是,includes 方法是一种严格相等(===)的比较方式,这意味着需要考虑数据类型。例如:
let arr = [1, 2, '3', 4, 5]; console.log(arr.includes(3)); // false console.log(arr.includes('3')); // true console.log(arr.includes('6')); // false
Array.prototype.includes 方法的使用
使用 Array.prototype.includes 方法非常简单。下面以一个例子来说明它的用法:
let arr = [1, 2, 3, 4, 5]; if (arr.includes(3)) { console.log('该元素存在于数组中'); } else { console.log('该元素不存在于数组中'); }
通过这个例子,我们不仅可以知道该如何使用 Array.prototype.includes 方法,还能够感受到它在实现上的简便性和严格性。
总结
Array.prototype.includes 方法是 ES7 中新增的一个方法,可以用来判断数组中是否包含某个元素。它可以替代旧版本中的 indexOf 方法,具有严格相等的比较方式和更简便的使用方式。
在实际开发中我们要根据需求选择适合的方法来判断数组中是否包含某个元素,以提高代码的可维护性和执行效率。
'''javascript // 示例 代码 let arr = [1, 2, 3, 4, 5]; console.log(arr.includes(3)); // true console.log(arr.includes(6)); // false
if (arr.includes(4)) { console.log('该元素存在于数组中'); } else { console.log('该元素不存在于数组中'); } '''
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64d31318b5eee0b525a9b7d3