find(),findIndex(),indexOf()的用法与区别∨
时间: 2024-02-09 20:09:14 浏览: 171
这三个方法都可以用来查找某个元素在数组或字符串中的位置,但是有一些区别:
1. `indexOf()` 方法返回第一个找到的元素的索引值,如果没有找到则返回-1。
2. `findIndex()` 方法返回第一个使回调函数返回true的元素的索引值,如果没有找到则返回-1。
3. `find()` 方法返回第一个使回调函数返回true的元素,如果没有找到则返回undefined。
另外需要注意的是,`find()` 和 `findIndex()` 方法只能用于数组,而 `indexOf()` 方法可以用于字符串和数组。此外,`find()` 和 `findIndex()` 方法接收一个回调函数作为参数,该函数用于判断元素是否符合条件。而 `indexOf()` 方法接收一个需要查找的元素作为参数。
举个例子,如果要在一个字符串中查找字符 "a" 的位置,可以使用 `indexOf()` 方法,代码如下:
```
const str = "hello world";
const index = str.indexOf("a");
console.log(index); // -1
```
如果要在一个数组中查找值为 3 的元素的位置,可以使用 `indexOf()` 方法或 `findIndex()` 方法,代码如下:
```
const arr = [1, 2, 3, 4, 5];
const index1 = arr.indexOf(3);
const index2 = arr.findIndex((num) => num === 3);
console.log(index1); // 2
console.log(index2); // 2
```
如果要在一个数组中查找值为 3 的元素,可以使用 `find()` 方法,代码如下:
```
const arr = [1, 2, 3, 4, 5];
const result = arr.find((num) => num === 3);
console.log(result); // 3
```
阅读全文