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

JS入门问题:如何在同一循环中判断所有数对和是否相等

判断数组所有数对和是否相等的循环实现(初学者友好)

当然可以在同一个循环里完成判断,下面是一个逻辑清晰、适合初学者理解的实现方法:

核心思路

  1. 先取第一个数对的和作为基准值,后续所有数对的和都和这个基准对比;
  2. 遍历过程中一旦发现某个数对的和和基准不一致,直接标记结果为false并终止循环(避免多余计算);
  3. 遍历完成后返回最终结果。

代码实现(结合你的示例)

function checkAllPairsEqual(input) {
  // 从数组首位获取数对数量
  const countPairs = input[0];
  // 特殊情况:没有数对时默认返回true
  if (countPairs === 0) return true;

  // 存储第一个数对的和作为基准
  let sumBase;
  // 标记所有数对和是否相等,默认设为true
  let allEqual = true;

  // 遍历每一组数对
  for (let i = 1; i <= countPairs * 2; i += 2) {
    const num = input[i];
    const num2 = input[i + 1];
    const currentSum = num + num2;

    // 第一次循环时初始化基准值
    if (i === 1) {
      sumBase = currentSum;
    } else {
      // 后续循环对比当前和与基准值
      if (currentSum !== sumBase) {
        allEqual = false;
        // 发现不等直接跳出循环,无需继续计算
        break;
      }
    }
  }

  return allEqual;
}

// 测试你的示例数组
const exampleInput = [3, 1, 1, 2, 0, 4, -2];
console.log(checkAllPairsEqual(exampleInput)); // 输出: true

初学者注意事项

  • 一定要用let/const声明变量(像原代码里未声明的i/num会变成全局变量,容易引发意外问题);
  • 加入break终止循环是简单的优化,不用等所有数对都遍历完就能得到结果;
  • 可以自己修改示例数组测试,比如把某一组数对改成和不为2的情况,验证函数是否返回false。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 19:20:36