【问题标题】:Reduction and optimization of multiple if statements in Javascript [duplicate]减少和优化 Javascript 中的多个 if 语句 [重复]
【发布时间】:2018-03-09 18:05:29
【问题描述】:

对于每个等于 > 的 data.row 1,2,3,4,我想为该特定元素添加类。

例如,如果data.row1 等于>,我想为row1 添加样式。用更有效的方式怎么可能呢?这主要是为了减少和优化代码,因为我的代码包含 20 多行做同样的事情。

请注意,data.row 是一个来自 php 的带有 Json Encode 的变量。

 if(data.row1 === ">"){ $("#row1").addClass("Green");}

 if(data.row2 === ">") {$("#row2").addClass(Green);}

 if(data.row3 === ">"){ $("#row3").addClass(Green);}

 if(data.row4 === ">") {$("#row4").addClass(Green);}

【问题讨论】:

  • codereview.stackexchange.com 是询问代码审查和优化问题的好地方。
  • @mplungjan tha data["row"+i] 点在哪里? data.row
  • 查看副本。您可以对变量使用括号表示法,而不是对常量使用点表示法
  • i 从 1 开始?它也应该以 4 结束才能运行
  • 是:for(var i = 1; i <= 4; i++) $("#row"+i).toggleClass("Green",data['row'+i] === ">");

标签: javascript jquery performance if-statement optimization


【解决方案1】:

循环怎么样?

for(var i = 1; i < 5; i++)
  if(data['row'+i] === ">")
    $("#row"+i).addClass("Green");

【讨论】:

  • @mplungjan 很抱歉,我已经尝试过您的代码,但它不起作用
  • 是的,你做错了,或者没有告诉我们完整的真相,上面的代码应该是我的评论的意思
  • @mplungjan 您的想法是正确的,但您从未解释过您正在使用循环。对于中级/高级编码人员来说,这可能看起来很明显,但对于初学者来说可能不是。
  • 严重不可能编写返回数据对象并且从未听说过循环的 PHP
  • @mplungjan 我没有你的经验,我是一名学生。我当然听说了,但我不知道如何实施。我在开始时尝试使用 jquery .each。无论如何感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 1970-01-01
  • 2019-06-06
  • 1970-01-01
  • 2011-07-15
相关资源
最近更新 更多