了解JavaScript数组系列XV-数组循环和迭代第XII部分
在最后两篇文章中,我谈到了使用 Array.indexOf()
和 Array.lastIndexOf()
数组方法。您可以在下面查看:
了解JavaScript数组系列XIII-数组循环和迭代第X部分
Nedy Udombat·10月15日·3分钟阅读
#javascript
#webdev
#初学者
了解JavaScript数组系列XIV-数组循环与迭代XI
Nedy Udombat·10月16日·3分钟阅读
#javascript
#webdev
#初学者
的 Array.indexOf()
和 Array.lastIndexOf()
当要搜索的元素存在于数组中时,两者都返回索引,并且 -1
如果没有。如果我们希望它返回布尔值怎么办? when当我们要搜索的元素存在时返回true,否则返回false。好吧,您很幸运,今天我们将讨论 Array.includes()
方法。
Array.includes()
此方法检查数组中的特定元素,如果找到该元素,则返回true,否则返回false。
它的语法类似于 Array.indexOf()
,除了一些区别:
// syntax
arr.includes(element, startIndex);
(元素):这是将在数组中搜索的元素。
(startIndex):这是开始搜索的数组的位置(索引)。如果未提供此值,则默认为 0
。如果提供的索引为负,则从以下位置开始搜索 arr.length + (startIndex)
。
一些例子:
const names = ('soji', 'nedy', 'naza', 'chukwudi', 'lii', 'nedy');
console.log(names.includes('nedy')) // true
console.log(names.includes('nedy', 6)) // false
如果 startIndex
等于或大于数组的长度?
const names = ('soji', 'nedy', 'naza', 'chukwudi', 'lii', 'nedy');
console.log(names.includes('nedy', 6)) // false
console.log(names.includes('nedy', 30)) // false
在这种情况下,不搜索数组。
如果计算出的startIndex小于0会怎样?
const names = ('soji', 'nedy', 'naza', 'chukwudi', 'lii', 'nedy');
console.log(names.includes('nedy', -30)) // true
console.log(names.includes('nedy', -8)) // false
在第一种情况下,计算出的startIndex将为 6 + (-30)
这是 -24
它返回true,但是在第二种情况下,计算出的索引是 6 + (-8)
这是 -2
它返回true。这是因为 Array.includes()
如果计算的startIndex小于或等于 -1 * arr.length
(这是 -6
(在这种情况下),将搜索整个数组。在这种情况下,第一种情况 -24
小于 -6
因此将搜索数组,但是在第二种情况下 -2
大于 -6
,因此将不会搜索该数组。
如果发生什么情况 Nedy
要么 neDy
被搜索?
const names = ('soji', 'nedy', 'naza', 'chukwudi', 'lii', 'nedy');
console.log(names.includes('Nedy',)) // false
console.log(names.includes('neDy', 3)) // false
原因很简单 Array.includes()
区分大小写。
结论
Array.includes()
当您要检查数组中是否存在元素时,应使用。如果要检查元素在数组中的位置,可以使用 Array.indexOf()
,我在这里写过
今天就这些,明天我们将讨论数组迭代中使用的另一组函数。
这是我写的有关Array系列的其他文章的链接:
- 什么是数组?
- 创建数组的替代方法。
- 阵列属性
- 数组循环与迭代第一部分
- 数组循环与迭代第七部分
(find())
- 数组循环与迭代第八部分
(findIndex())
有任何疑问,补充或更正吗?请发表评论。
感谢您的阅读。 ?