findindex 是 javascript 数组方法,返回首个满足条件元素的索引,未找到返回-1;不修改原数组,需手动检查-1避免误用。

findIndex 是 JavaScript 数组的内置方法,用于查找第一个满足条件的元素的索引。它不会修改原数组,返回的是索引值(数字),没找到则返回 -1。
基本用法:传入一个测试函数
语法:array.findIndex(callback(element[, index[, array]])[, thisArg])
核心是回调函数,它接收当前元素、索引、原数组三个参数(常用前两个)。只要回调函数对某个元素返回 true,findIndex 就立即返回该元素的索引并停止遍历。
例如:
const numbers = [10, 25, 30, 45, 50]; const index = numbers.findIndex(num => num > 20); console.log(index); // 1(25 是第一个大于 20 的数,索引为 1)
查找对象数组中的特定对象
常见场景是根据某个属性匹配对象。注意:不能直接用 === 比较对象,要比较属性值。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
例如:
const users = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' }
];
const targetIndex = users.findIndex(user => user.id === 2);
console.log(targetIndex); // 1
处理未匹配的情况(返回 -1)
必须主动判断返回值是否为 -1,否则可能误把 -1 当作有效索引使用(比如用于 splice 或访问数组会出错)。
- 安全写法:先检查再操作
const arr = ['a', 'b', 'c'];
const idx = arr.findIndex(item => item === 'd');
if (idx !== -1) {
console.log('找到了,索引是:', idx);
} else {
console.log('没找到');
}
- 也可用可选链或空值合并做默认处理,但
findIndex本身不支持默认值
和 find / indexOf 的区别
• findIndex 返回索引;find 返回元素本身;indexOf 只支持严格相等(===),不支持复杂条件
• 对于简单值(字符串、数字),indexOf 更轻量;需要条件判断时,必须用 findIndex 或 find
• 注意:findIndex 不会跳过稀疏数组的空槽,但会正常遍历已定义的位置
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










