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

标签 javascript

我有一个名为 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 语句,但我想知道是否有更有效的方法...

最佳答案

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

userA_index = 10 - extraRank.indexOf(userA)

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

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

userA_index = mapIndexToOutput[extraRank.indexOf(userA)]

关于javascript - 如何优化我的代码中的条件语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55339310/

相关文章:

javascript - jQuery:$().click(fn) 与 $().bind ('click' ,fn);

javascript - React.js。错误: Invalid value for <path> attribute d

javascript - 带有 Google API 狂热字符的 Django 和 JSON POST

javascript - 为什么 JavaScript 中有这么多分号?

javascript - 隐藏父元素但子元素仍然使用 jQuery

javascript - 数据模型未在 Controller 中反序列化

javascript - 如何让单引号保留在变量中?

javascript - 用 phantomJS 关闭

javascript - 如果渲染任何其他 View ,则 Backbone View 重新渲染

javascript - 当通过元素的 id 与元素一起使用时,jQuery .load() 是否会加载整个页面?