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

纯JS练习:如何用.map实现两数之和索引查找功能?

用.map方法实现数组元素和目标值的索引对查找

实现代码

function pairsToSum(numList, sum) {
  return numList.map((num, i) => {
    // 遍历当前索引之后的所有元素,避免重复配对
    return numList.slice(i + 1).map((_, j) => {
      const actualIndex = i + 1 + j;
      if (num + numList[actualIndex] === sum) {
        return [i, actualIndex];
      }
    }).filter(pair => pair !== undefined); // 过滤不符合条件的结果
  }).flat(); // 扁平化二维数组为一维数组
}

console.log(pairsToSum([1, 1, 0, 1], 2));
// 输出: [ [ 0, 1 ], [ 0, 3 ], [ 1, 3 ] ]

思路说明

  • 外层map遍历数组的每个元素及其索引i,只关注当前索引之后的元素,避免生成重复的索引对(比如不会出现[1,0]这种和[0,1]重复的情况)。
  • 内层map处理i之后的子数组,通过i + 1 + j计算子数组元素对应的原数组索引,判断元素和是否等于目标值,符合条件则返回索引对。
  • 用filter移除内层map返回的undefined(不符合条件的情况),再通过flat()将外层map生成的二维结果数组扁平化,得到最终的索引对列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 22:35:20