js数组查找元素 findindex() 方法,返回第一个匹配元素下标
时间: 2023-05-04 10:02:49 浏览: 270
JavaScript 中的数组查找方法 findIndex() 可以在数组中查找匹配元素并返回其下标。这个方法接收一个回调函数作为参数,用于指定查找的方式。
回调函数接收三个参数:数组元素,元素下标和数组本身。当查找到第一个匹配元素时,findIndex() 方法会返回该元素的下标,如果没有找到则返回 -1。
例如,我们可以使用 findIndex() 方法来查找数组中第一个大于等于 5 的元素下标:
```
const array = [1, 3, 4, 5, 6, 7];
const index = array.findIndex((element) => element >= 5);
console.log(index); // 输出 3
```
在这个例子中,我们给 findIndex() 方法传入了一个回调函数,回调函数判断数组元素是否大于等于 5。因为数组中第一个大于等于 5 的元素下标是 3,所以 findIndex() 方法返回了 3。
需要注意的是,findIndex() 方法只会返回第一个匹配元素的下标,如果需要查找出所有匹配的元素下标,可以使用 filter() 方法配合使用。
相关问题
vue 获取数组的下标
要获取一个元素在数组中的下标,可以使用 JavaScript 中的 indexOf() 方法或 findIndex() 方法。
indexOf() 方法用于查找数组中给定元素的第一个匹配项,并返回其在数组中的索引。例如:
```
const items = ['apple', 'banana', 'orange'];
const index = items.indexOf('banana'); // 获取 'banana' 在数组中的索引,即 1
```
findIndex() 方法用于查找数组中满足条件的第一个元素,并返回其在数组中的索引。例如:
```
const items = [
{ name: 'apple', price: 1.5 },
{ name: 'banana', price: 2.0 },
{ name: 'orange', price: 1.0 },
];
const index = items.findIndex(item => item.name === 'banana'); // 获取 name 为 'banana' 的元素在数组中的索引,即 1
```
在这个例子中,我们定义了一个包含多个对象的数组 items,每个对象都有一个 name 属性。我们要查找 name 为 'banana' 的元素在数组中的索引,所以我们使用 findIndex() 方法来查找数组中第一个 name 属性等于 'banana' 的元素,并将其索引存储在 index 变量中。
fiflter匹配某个数组对应的数组对象的id的数组对象及过滤前的下标
在JavaScript中,如果你有一个数组的对象集合,比如`let arr = [{ id: 1, name: 'A' }, { id: 2, name: 'B' }, { id: 3, name: 'C' }]`,并且你想找到那些特定ID对应的对象及其索引,你可以使用`filter()`函数结合数组的`indexOf()`方法来实现。假设你想查找ID为2的对象以及它的索引:
```javascript
let idToFilter = 2;
let filteredObjects = arr.filter(item => item.id === idToFilter);
let indices = arr.findIndex((obj, index) => obj.id === idToFilter);
filteredObjects; // 返回:[{ id: 2, name: 'B' }]
indices; // 返回:1 (因为数组索引从0开始)
```
在这个例子中:
- `filter()`返回一个新的数组,包含所有`id`属性等于`idToFilter`的元素。
- `findIndex()`则返回`id`为`idToFilter`的第一个对象在原数组中的索引。
如果你想获取所有匹配的索引,可以稍微修改一下代码:
```javascript
let idToFilter = 2;
let matchedIndices = arr.reduce((acc, item, index) => {
if (item.id === idToFilter) acc.push(index);
return acc;
}, []);
matchedIndices; // 返回:[1]
```
这里我们使用了`reduce()`函数来创建一个新的数组,只收集匹配到ID的原始索引值。
阅读全文