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

JavaScript中如何返回首元素为最大值的子数组?

筛选二维数组中首元素最大的子数组

给定二维数组 let ar = [[1,24], [2, 6]],需求是返回首元素为所有子数组首元素最大值的子数组(预期结果 [2,6])。你之前用 map 配合 Math.max 的写法只能拿到每个子数组的最大值,无法直接获取目标子数组,以下是两种可行的解决方案:

方案一:使用 reduce 直接遍历对比

reduce 可以在遍历过程中直接记录首元素最大的子数组,一步到位:

let ar = [[1,24], [2, 6]];
const targetArr = ar.reduce((maxArr, currentArr) => {
  return currentArr[0] > maxArr[0] ? currentArr : maxArr;
}, ar[0]);

console.log(targetArr); // 输出 [2,6]

逻辑说明:以数组第一个元素为初始对比基准,逐个遍历后续子数组,每次对比当前子数组的首元素与基准子数组的首元素,保留更大的那个子数组,最终得到结果。

方案二:先找最大值再筛选

如果需要更清晰的分步逻辑,可以先提取所有首元素的最大值,再筛选对应子数组:

let ar = [[1,24], [2, 6]];
// 提取所有子数组的首元素并找出最大值
const maxFirstElement = Math.max(...ar.map(row => row[0]));
// 找到第一个首元素等于最大值的子数组
const targetArr = ar.find(row => row[0] === maxFirstElement);

console.log(targetArr); // 输出 [2,6]

补充说明:如果存在多个首元素同为最大值的子数组,find 只会返回第一个匹配项;若需要获取所有符合条件的子数组,可将 find 替换为 filter。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 11:45:35