JavaScript(JS)的 indexOf 方法如何使用?一文讲解 indexOf 的用法

javascript 的 indexOf() 方法是数组对象的方法之一,用于查找数组中某个元素的位置。

用 Apifox,节省研发团队的每一分钟

JavaScript(JS)的 indexOf 方法如何使用?一文讲解 indexOf 的用法

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

在 JavaScript 中,indexOf()是一个常用的数组方法,用于查找指定元素在数组中第一次出现的位置索引。它在处理数组数据时非常有用,让我们一起深入了解这个方法的概念、使用方式以及实际案例。

javascript 中 indexOf() 方法的使用
MDN 的 javascript 文档

indexOf() 方法概念

indexOf()方法是数组对象的方法之一,用于查找数组中某个元素的位置。当我们需要判断一个元素是否存在于数组中,以及找到它的位置时,indexOf就会发挥重要作用。该方法返回首次出现的元素索引,如果没有找到,则返回 -1。


该方法属于字符串的实例方法,语法格式如下:

str.indexof(searchValue, fromIndex)
  • searchValue:要搜索的字符串值。
  • fromIndex:可选,搜索的起始位置,默认为 0。

indexOf() 使用示例


indexOf 方法可以通过两种方式使用:基本用法和从指定索引开始搜索。

1. 基本用法

基本的 indexOf 使用方式是在一个数组上调用它,并传入要查找的元素作为参数。它会返回元素首次出现的索引位置,如果元素不存在,返回-1。

const fruits = ['apple', 'banana', 'orange', 'grape', 'banana'];

const indexOfBanana = fruits.indexOf('banana');
console.log(indexOfBanana); // 输出: 1

const indexOfCherry = fruits.indexOf('cherry');
console.log(indexOfCherry); // 输出: -1,因为'cherry'不存在于数组中

2. 从指定索引

开始搜索你还可以传入第二个参数来指定从哪个索引开始搜索元素。

const numbers = [2, 5, 8, 5, 10];

const indexOf5 = numbers.indexOf(5);
console.log(indexOf5); // 输出: 1

const indexOf5FromIndex3 = numbers.indexOf(5, 3);
console.log(indexOf5FromIndex3); // 输出: 3,从索引3开始搜索,找到了第二个5的位置

3.与其他方法的比较

  • indexof vs includes

includes 方法仅返回 true/false 判断元素是否存在,而 indexof 会返回元素的索引。

  • indexof vs findIndex

findIndex 需要传入一个回调函数判断元素,indexof 直接传入要判断的元素。

  • indexof vs lastIndexOf

lastIndexOf 从字符串末尾开始搜索。

实践案例

让我们通过一个实际案例来更好地理解 indexOf() 方法的使用。


假设你有一个名单,想要检查特定的名字是否在名单中,并找出它在名单中的位置(注:你可在 https://playcode.io/javascript 在线调试)。

const nameList = ['Alice', 'Bob', 'Charlie', 'David', 'Eve'];

function findName(name) {
  const index = nameList.indexOf(name);
  if (index !== -1) {
    console.log(`${name} 在名单中,位置索引为 ${index}`);
  } else {
    console.log(`${name} 不在名单中`);
  }
}

findName('Charlie'); // 输出: Charlie 在名单中,位置索引为 2
findName('Frank');   // 输出: Frank 不在名单中
JavaScript 的 indexOf() 方法运行结果
案例中使用 indexOf() 方法的运行结果

互动式练习

1.在下面的数组中查找元素 'apple' 的索引位置。

const fruits = ['banana', 'orange', 'apple', 'grape', 'apple'];

参考答案:2


2.在下面的数组中,从索引3开始查找元素 8 的索引位置。

const numbers = [5, 10, 15, 8, 20, 8, 25];

参考答案:5

提示、技巧和注意事项

  • indexOf 方法使用严格相等(===)比较来查找元素,因此对于复杂对象的比较需要格外注意。
  • 如果需要查找所有出现的位置,可以结合循环和 indexOf 方法来实现。
  • 在使用 indexOf 前,通常会先检查是否为-1,以判断元素是否存在。

通过 Apifox 调试后端接口

Apifox 是一个比 Postman 更强大的接口测试工具,Apifox = Postman + Swagger + Mock + JMeter,Apifox 支持调试 http(s)、WebSocket、Socket、gRPC、Dubbo 等协议的接口,并且集成了 IDEA 插件。在后端人员写完服务接口时,测试阶段可以通过 Apifox 来校验接口的正确性,图形化界面极大的方便了项目的上线效率。

通过 Apifox 调试接口
Apifox 调试接口界面

总结

JavaScript的 indexOf 方法是一个在数组中查找元素位置的有用工具。通过基本用法和从指定索引开始搜索,你可以轻松地定位数组中元素的位置。在处理数组数据时,indexOf 是一个不可或缺的工具。

知识扩展:



参考链接:

Array.prototype.indexOf():https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/indexOf