繁体   English   中英

如何在我的代码中优化条件语句

[英]How to optimize conditional statements in my code

我有一个名为2D阵列extraRank保持名为用户A, 用户B, 用户CuserD其他用户阵列每当我推动它们到其中:

// users arrays:
userA = ["Sara Ree",18, "Doctor", "441", "31"];
userB = ["Marry",18, "Nurse", "41", "1"];
userC = ["John Doe",18, "Woker", "21", "31"];
userD = ["Alex Morph",18, "Musisian", "81", "51"];

// users arrays may be pushed to this array  
let extraRank = [];

我想要的是一种有效的方法:

首先,检查extraRank存在哪些用户数组。

然后,如果例如userA存在,请执行以下操作:

如果extraRank.indexOf(userA) == 0则指定userA_Index = 10;

如果extraRank.indexOf(userA) == 1则指定userA_Index = 9;

如果extraRank.indexOf(userA) == 2则指定userA_Index = 8;

如果extraRank.indexOf(userA) == 3则分配userA_Index = 7;

我知道一种方法是使用每个用户的if语句 ,但我想知道是否有更有效的方法来做...

如果分配是线性的,如您的示例所示,您可以执行简单的减法:

userA_index = 10 - extraRank.indexOf(userA)

如果它更复杂,您可以创建一个将索引连接到结果的地图对象,例如:

const mapIndexToOutput = {
  0: 10,
  1: 9,
  2: 8,
  3: 7,
  ...
}

userA_index = mapIndexToOutput[extraRank.indexOf(userA)]

我并不完全理解你的需求,但是这样做会有一个简单的减法吗?

userA_Index = 10 - extraRank.indexOf(userA)

但我不确定你想在这里实现什么。

编辑:您说您想优化执行时间。 这将是一堆if的效率更高。 不过,我不认为甚至10 if语句都将是明显的。 你的代码现在有多慢? 你有多少user 您可以先迁移其他地方进行优化,但如果没有更大的应用视图,很难说。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM