JS数组的indexOf方法是用来查找数组中指定元素的索引位置的。它接收一个参数作为要查找的元素,并返回第一个匹配的元素的索引值,如果没有找到则返回-1。
语法:
arr.indexOf(searchElement[, fromIndex])
参数说明:
1. searchElement:要查找的元素。
2. fromIndex(可选):从数组中的哪个索引位置开始查找,默认值为0。如果fromIndex为负数,则表示从数组末尾开始逆向查找。
返回值:
如果找到指定元素,则返回该元素的索引位置;如果找不到指定元素,则返回-1。
注意事项:
1. indexOf方法使用的是严格相等比较(===),因此比较时不会进行隐式类型转换。
2. 如果要查找的元素在数组中重复出现,只返回第一个匹配元素的索引。
3. 如果查找的元素是NaN(JavaScript中的特殊值表示“不是数值”),indexOf方法会返回-1,因为NaN与任何值都不相等,包括它自身。
示例1:查找数组中的元素
```javascript
const arr = [1, 2, 3, 4, 5];
console.log(arr.indexOf(3)); // 输出:2
console.log(arr.indexOf(6)); // 输出:-1
```
示例2:指定搜索起始位置
```javascript
const arr = [1, 2, 3, 4, 5];
console.log(arr.indexOf(2, 1)); // 输出:1
console.log(arr.indexOf(2, 2)); // 输出:-1
```
示例3:使用fromIndex为负数实现从末尾逆向查找
```javascript
const arr = [1, 2, 3, 4, 5];
console.log(arr.indexOf(3, -2)); // 输出:-1
console.log(arr.indexOf(3, -3)); // 输出:2
```
以上是indexOf方法的基本使用示例。下面我们来看一些更实际的应用案例。
案例1:判断某个元素是否在数组中
```javascript
const arr = [1, 2, 3, 4, 5];
const number = 3;
if (arr.indexOf(number) !== -1) {
console.log(`数组中包含${number}`);
} else {
console.log(`数组中不包含${number}`);
}
```
案例2:删除数组中的指定元素
```javascript
const arr = [1, 2, 3, 4, 5];
const number = 3;
const index = arr.indexOf(number);
if (index !== -1) {
arr.splice(index, 1);
}
console.log(arr); // 输出:[1, 2, 4, 5]
```
案例3:找出数组中的重复元素
```javascript
const arr = [1, 2, 3, 3, 4, 4, 5];
const duplicates = [];
arr.forEach((element, index) => {
if (arr.indexOf(element, index + 1) !== -1 && duplicates.indexOf(element) === -1) {
duplicates.push(element);
}
});
console.log(duplicates); // 输出:[3, 4]
```
通过以上案例可以看出,indexOf方法在实际开发中应用广泛。它可以用来确定数组是否包含某个元素,删除数组中的指定元素,以及查找数组中的重复元素等。 如果你喜欢我们三七知识分享网站的文章, 欢迎您分享或收藏知识分享网站文章 欢迎您到我们的网站逛逛喔!https://www.37seo.cn/
发表评论 取消回复