You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用find()方法返回数组中指定元素的下一个项?

如何获取数组中匹配元素的下一个元素?

直接用find()方法没法实现你的需求,因为find()的设计逻辑是:当回调函数返回true时,立即返回当前正在遍历的元素,没办法让它返回下一个位置的元素。

要实现获取匹配元素的下一个元素,更直接的方式是先找到目标元素的索引,再取索引+1位置的元素:

const nums = [5, 3, 7, 8, 1, 10];
const num = 7;

// 先找目标元素的索引
const targetIndex = nums.indexOf(num);
// 检查索引合法性:存在且不是最后一个元素
const result = targetIndex !== -1 && targetIndex < nums.length - 1 
  ? nums[targetIndex + 1] 
  : undefined; // 如果目标不存在或已是最后一个,返回undefined

如果非要用数组迭代方法,也可以用find()结合闭包记录前一个元素,但这种写法不够直观,没必要舍近求远:

const nums = [5, 3, 7, 8, 1, 10];
const num = 7;

let prevNum;
const result = nums.find(currentNum => {
  const isTargetNext = prevNum === num;
  prevNum = currentNum;
  return isTargetNext;
});

这个方法的逻辑是遍历数组时记录前一个元素,当当前元素的前一个是目标元素时,返回当前元素。但相比直接找索引的方式,可读性差很多,不推荐。

另外要注意边界情况:如果目标元素是数组的最后一个元素,或者数组中不存在目标元素,结果会是undefined,你可以根据需求调整这部分的处理逻辑。

内容的提问来源于stack exchange,提问作者Paul Bevan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 00:45:46