首页 > 解决方案 > 如何优化我的代码中的条件语句

问题描述

我有一个名为的 2D 数组extraRank,它包含其他名为userAuserBuserCuserD的用户数组,每当我将它们推入其中时:

// 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 语句,但我想知道是否有更有效的方法来做到这一点......

标签: javascript

解决方案


如果分配是线性的,如您的示例所建议的,您可以做一个简单的减法:

userA_index = 10 - extraRank.indexOf(userA)

如果比较复杂,可以创建一个将索引连接到结果的map对象,比如:

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

userA_index = mapIndexToOutput[extraRank.indexOf(userA)]

推荐阅读