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

Wix Velo计算器开发:if-else条件重复致平均计算逻辑异常求助

问题分析与修复方案

原代码存在两个核心问题:

  • 第一个if条件preço1 === 0 || preço2 === 0 || preço3 === 0覆盖了所有包含0的场景,导致后续的else if分支永远无法执行,这就是ESLint提示分支不可达的原因。
  • 第二个else if的判断逻辑完全错误,重复的preço1 && preço2没有意义,preço2 && preço3 === 0也无法正确判断两个变量为0的情况。

修复思路

先统计三个变量中0的数量,再根据数量执行对应计算逻辑,这样逻辑清晰且不会出现条件覆盖:

修正后的代码

// 统计0的个数
const zeroCount = [preço1, preço2, preço3].filter(num => num === 0).length;
const total = preço1 + preço2 + preço3;
let médiaPreços;

if (zeroCount === 1) {
  médiaPreços = total / 2;
} else if (zeroCount === 2) {
  médiaPreços = total; // 总和除以1等价于直接取总和
} else if (zeroCount === 0) {
  médiaPreços = total / 3;
} else {
  // 处理三个变量都是0的边界情况,可根据需求调整
  médiaPreços = 0;
}

代码说明

  1. 用数组filter方法统计0的数量,比逐个判断更简洁易维护。
  2. 先计算总和total,避免重复计算三次变量之和。
  3. 按0的数量分支处理,每个条件互斥,不会出现覆盖问题,ESLint的提示也会消失。
  4. 增加了三个变量都是0的边界处理,避免出现逻辑漏洞。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:15:15