JS入门问题:如何在同一循环中判断所有数对和是否相等
判断数组所有数对和是否相等的循环实现(初学者友好)
当然可以在同一个循环里完成判断,下面是一个逻辑清晰、适合初学者理解的实现方法:
核心思路
- 先取第一个数对的和作为基准值,后续所有数对的和都和这个基准对比;
- 遍历过程中一旦发现某个数对的和和基准不一致,直接标记结果为
false并终止循环(避免多余计算); - 遍历完成后返回最终结果。
代码实现(结合你的示例)
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
相关产品推荐
相关产品推荐

