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

React Native冗余if-else代码优化:用循环精简重复逻辑

精简重复if-else的实现方案

先假设你的冗余代码逻辑是根据End值,依次传入对应数量的found.ScoreEndN和ScoretoStoreN参数调用updateScores,比如End=3时传入ScoreEnd1、ScoreEnd2、ScoreEnd3、ScoretoStore1、ScoretoStore2、ScoretoStore3(或成对传入),可以用循环生成参数数组的方式彻底消除重复判断:

方案1:参数按「所有ScoreEnd + 所有ScoretoStore」顺序传入

// 生成ScoreEnd参数列表
const scoreEnds = Array.from({ length: End }, (_, i) => found[`ScoreEnd${i + 1}`]);
// 生成ScoretoStore参数列表(假设ScoretoStore是数组或可通过索引访问)
const scoreStores = Array.from({ length: End }, (_, i) => ScoretoStore[i + 1]);
// 展开参数调用函数
updateScores(...scoreEnds, ...scoreStores);

方案2:参数按「ScoreEnd1 + ScoretoStore1 + ScoreEnd2 + ScoretoStore2」成对传入

如果你的参数顺序是每个回合的分数和存储值成对出现,调整循环逻辑即可:

const params = [];
for (let i = 1; i <= End; i++) {
  params.push(found[`ScoreEnd${i}`], ScoretoStore[i]);
}
updateScores(...params);

额外优化:边界校验

如果End可能出现非法值(比如0或超出最大回合数),可以加个简单判断避免错误:

const MAX_ROUND = 10; // 替换成你的实际最大回合数
if (End < 1 || End > MAX_ROUND) return;

// 上面的循环代码...

注意事项

  • 确保found对象存在ScoreEnd1到ScoreEnd{End}的属性,避免属性不存在导致的undefined
  • 如果ScoretoStore是对象而非数组,把ScoretoStore[i]改成ScoretoStore[ScoretoStore${i}]即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 07:00:57