js实现findIndex
时间: 2024-01-05 20:21:07 浏览: 32
在JavaScript中,findIndex()方法用于查找数组中满足指定条件的第一个元素的索引。它接受一个回调函数作为参数,该回调函数用于定义查找条件。如果找到满足条件的元素,则返回该元素的索引;如果没有找到,则返回-1。
以下是两个使用findIndex()方法的示例:
1. 在数组中查找大于10的第一个元素的索引:
```javascript
var arr = [5, 8, 12, 15, 20];
var index = arr.findIndex((value, index) => value > 10);
console.log(index); // 输出:2
```
2. 在数组中查找满足复杂条件的第一个元素的索引:
```javascript
var arr = [10, 20, 30, 40, 50];
var scroll_top = 25;
var active_index = arr.findIndex((value, index, arr) => (value <= scroll_top && scroll_top < arr[index + 1] && index != arr.length - 1) || (index == arr.length - 1 && value <= scroll_top));
console.log(active_index); // 输出:1
```
相关问题
原生js实现findIndex
以下是原生JavaScript实现findIndex的示例代码:
```javascript
var list = [
{id: 4, pid: 3, menuName: "操作日志", menuLevel: 2, url: "/operatelogs"},
{id: 8, pid: 7, menuName: "富文本", menuLevel: 2, url: "/richtext"},
{id: 11, pid: 7, menuName: "echarts", menuLevel: 2, url: "/echarts"}
];
function findIndex(arr, callback) {
for (var i = 0; i < arr.length; i++) {
if (callback(arr[i])) {
return i;
}
}
return -1;
}
var index = findIndex(list, function(obj) {
return obj.url === '/echarts';
});
console.log(index); // 输出:2
```
js findIndex
findIndex是JavaScript数组的一个方法,用于查找数组中满足指定条件的第一个元素的索引值。它不会改变原始数组的值。
举个例子,假设我们有一个数组arr=[1, 2, 3, 4, 5, 3, 3, 2, 4, 5],我们想要找到第一个大于2的元素的索引值。我们可以使用findIndex方法来实现:
const arr = [1, 2, 3, 4, 5, 3, 3, 2, 4, 5]
const index = arr.findIndex(item => item > 2)
console.log(index) // 输出2
在这个例子中,我们定义了一个箭头函数item => item > 2作为参数传递给findIndex方法。这个箭头函数的作用是判断数组中的每个元素是否大于2。findIndex方法会遍历数组,并返回满足条件的第一个元素的索引值,如果没有找到满足条件的元素,则返回-1。在上述例子中,数组arr的第一个满足条件的元素是3,其索引为2,因此输出结果为2。
需要注意的是,findIndex方法只返回满足条件的第一个元素的索引值,并且不检测剩余值。如果需要返回满足条件的元素本身而不是索引值,可以使用find方法。具体如何使用取决于具体的场景需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [javascript的findIndex()方法](https://blog.csdn.net/Primary_Insist/article/details/121121326)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *2* *3* [js findIndex方法](https://blog.csdn.net/Polohert/article/details/124386464)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]