想了解你会如何优化这个javascriptifelse语句的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于怎么优化ifelse的相关问题,此外,我们还将为您介绍关于c–如何重构此结构,if-
想了解你会如何优化这个 javascript if else 语句的新动态吗?本文将为您提供详细的信息,我们还将为您解答关于怎么优化if else的相关问题,此外,我们还将为您介绍关于c – 如何重构此结构,if-else-if-else-if * 100、c# – Visual Studio 2015 Curly Brace Formatting:If,Else If,Else、c# – 重构if if – else if – else with common objects、ELSE 回到 Azure 数据工厂中的 IF-ELSE 语句While True之前的新知识。
本文目录一览:- 你会如何优化这个 javascript if else 语句(怎么优化if else)
- c – 如何重构此结构,if-else-if-else-if * 100
- c# – Visual Studio 2015 Curly Brace Formatting:If,Else If,Else
- c# – 重构if if – else if – else with common objects
- ELSE 回到 Azure 数据工厂中的 IF-ELSE 语句While True之前
你会如何优化这个 javascript if else 语句(怎么优化if else)
如何解决你会如何优化这个 javascript if else 语句
我一直致力于构建一些平台,除了给定的方法之外,我找不到任何其他有效的优化方法。优化多个 if else 语句的解决方案是什么? ..................................... ......................................
if (response[''total_visits''] == visitNumber.val()) {
visitNumber.css(''color'',''green'');
} else {
visitNumber.css(''color'',''red'');
}
if (response[''best_thing''] == aboutCity.val()) {
aboutCity.css(''color'',''green'');
} else {
aboutCity.css(''color'',''red'');
}
if (response[''fav_attraction''] == favAttraction.val()) {
favAttraction.css(''color'',''green'');
} else {
favAttraction.css(''color'',''red'');
}
if (response[''destination_dining''] == destinationDining.val()) {
destinationDining.css(''color'',''green'');
} else {
destinationDining.css(''color'',''red'');
}
if (response[''method_transport''] == transportMethod.val()) {
transportMethod.css(''color'',''green'');
} else {
transportMethod.css(''color'',''red'');
}
if (response[''age_group''] == ageGroup.val()) {
ageGroup.css(''color'',''green'');
} else {
ageGroup.css(''color'',''red'');
}
if (response[''income_level''] == incomeLevel.val()) {
incomeLevel.css(''color'',''green'');
} else {
incomeLevel.css(''color'',''red'');
}
if (response[''visit_purpose''] == onBusiness.val()) {
onBusiness.css(''color'',''green'');
} else {
onBusiness.css(''color'',''red'');
}
if (response[''accomodation_cost''] == accomadationCost.val()) {
accomadationCost.css(''color'',''green'');
} else {
accomadationCost.css(''color'',''red'');
}
if (response[''occupation''] == occupation.val()) {
occupation.css(''color'',''green'');
} else {
occupation.css(''color'',''red'');
}
解决方法
我会将它们存储在一个对象中,并使用 Object.keys
来更新 css
const obj = {
total_visits: visitNumber,best_thing: aboutCity,fav_attraction: favAttraction,destination_dining: destinationDining,method_transport: transportMethod,age_group: ageGroup,income_level: incomeLevel,visit_purpose: onBusiness,accomodation_cost: accomadationCost,occupation: occupation
};
Object.keys(obj).map((key) => {
if (response[key] === obj[key].val()) {
obj[key].css(''color'',''green'');
} else {
obj[key].css(''color'',''red'');
}
})
在上述对象中,visitNumber
、aboutCity...
等与您在代码中使用的对象完全相同。
使用 ternary,这样会更整洁。
let color = response.total_visits == visitNumber.val() ? ''green'' : ''red'';
visitNumber.css(''color'',color);
重复其余部分。
c – 如何重构此结构,if-else-if-else-if * 100
std::string xxx = GetCommand(); // get "CommandX"; if (xxx == "Command1") { return new Command1(); } else if (xxx == "Command2") { return new Command2(); } ... else if (xxx == "Command100") { return new Command100(); }
我想改进这个代码结构.
有太多的比较.所以我把它们放到地图上.
for (int i = 0; i < GetCommandCount(); ++i) { // key is a command string // value is a function pointer which creates it's instance map.insert(command,a function pointer); } // then ICommand* pCommand = map.getInstance(command);
但是,如果新的命令来了,这种方式必须每次增加一些功能.
是的,这些功能可能是合理的.但是所有的功能只是返回新的CommandNNN();我想有办法删除重复.
你怎么想?
解决方法
template <class T> CommandBase* createCommand() { return new T(); }
并绑定到您的地图中的此功能:
map.insert(std::make_pair("Command1",&createCommand<Command1>)); map.insert(std::make_pair("Command2",&createCommand<Command2>)); map.insert(std::make_pair("Command3",&createCommand<Command3>));
这样可以避免为每个命令创建一个新功能.但是,map.insert-statements中仍然会有一些重复.这可以通过使用宏进一步减少,如果这是你的一杯茶:
#define INSERT(cmd) map.insert(std::make_pair(#cmd,&createCommand<cmd>)); INSERT(Command1); INSERT(Command2); INSERT(Command3); #undef INSERT
要么
#define INSERT(n) map.insert(std::make_pair("Command" #n,&createCommand<Command ## n>)); INSERT(1); INSERT(2); INSERT(3); #undef INSERT
我怀疑你甚至可以让预处理器为你做一些计数,但这不在我的域之外.
应用更多的宏,以及一些全球国家,这两个都被许多人所皱眉,你可以获得更加紧密的耦合:
#include <map> #include <string> #include <cassert> class CommandBase {}; static std::map<std::string,CommandBase* (*)()> g_commandMap; template <class C> CommandBase* createCommand() { return new C(); } class CommandRegistrer { public: CommandRegistrer(const std::string& name,CommandBase* (*instantiator)()) { g_commandMap.insert(std::make_pair(name,instantiator)); } }; #define COMMAND_CLASS(n) \ class Command##n; \ CommandRegistrer g_commandRegistrer##n("Command" #n,createCommand<Command##n>); \ class Command##n : public CommandBase COMMAND_CLASS(1) { /* implementation here */ }; COMMAND_CLASS(2) { /* implementation here */ }; int main() { assert(g_commandMap.find("Command1") != g_commandMap.end()); }
c# – Visual Studio 2015 Curly Brace Formatting:If,Else If,Else
Visual Studio当前正在自动格式化我的代码,请注意else {
public static string Gender(string x) { if (x == "M") { return "Male"; } else if (x == "F") { return "Female"; } else { return "UnkNown"; } }
我想我的代码是这样自动格式化的
public static string Gender(string x) { if (x == "M") { return "Male"; } else if (x == "F") { return "Female"; } else { return "UnkNown"; } }
解决方法
一个重要的设置是取消选中“将其他地方放在新线上”选项.
如果这还不够,我会发布一个包含我所有设置的屏幕截图(http://imgur.com/XPvH8pI)
c# – 重构if if – else if – else with common objects
这里有一些虚拟代码来说明:
List<ValidationResult> validationResults = new ...; Inspector inspector = commonInspector; bool additionalOp = commonFlag; HashSet<Thing> thingstocheck = theThings; foreach (var thing in thingstocheck) { if (IsCandy(thing) && thing.IsWrapped && thing.IsHard) { var inspected = inspector.Inspect(thing.Value); if (inspected != thing.Value) { validationResults.Add(new ...); if (additionalOp) { thing.Taste(); } } } else if (IsChocolate(thing)) { var sweet = (Sweet)thing; List<BadCalories> badCalories; while (var calorie in sweet.Calories) { if (calorie.IsGood) continue; badCalories.Add(calorie); } foreach (var badCal in badCalories) { var inspected = inspector.Inspect(badCal.Value); if (inspected != badCal.Value) { validationResults.Add(new ...); if (additionalOp) { badCal.Taste(); } } } } else { if(thing ...) else if (thing ...) }
我阅读了一些文章/可能适用的各种模式/实践的帖子,但代码的依赖关系让我对应用概念有点复杂化.我现在对代码的关注程度有点过了一段时间没有任何帮助,因此很难从微观管理中脱颖而出.
解决方法
if(IsHardWrappedCandy(thing)) ValidateHardWrappedCandy(thing); else if (IsChocolateCandy(thing)) ValidateChocolateCandy(thing);
还有interitance,你可以创建糖果类和封装行为:
public abstract class CandyBase { public abstract void Validate(); } public class HardWrappedCandy : CandyBase { public override void Validate() { // Todo: Validation logic } }
然后你的代码将是:
foreach(var candy in candies) candy.Validate();
当然,你需要标准化参数等,但你明白了.
阅读“清洁代码”一书,它有很多关于如何重构的好主意. http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882
ELSE 回到 Azure 数据工厂中的 IF-ELSE 语句While True之前
如何解决ELSE 回到 Azure 数据工厂中的 IF-ELSE 语句While True之前
我有一个问题,我的 ELSE
条件需要回到第一个位置(在 IF-ELSE 之前)
所以,我有一个这样的管道,我的管道比较来自查找(查询表)和数据块输出的值,如果值>,它将转到 IF,如果值
是否可以在 ADF 中做到这一点?
这是我的管道
这是我的错误条件
我希望我的 False 条件回到第一张图所示的第一个条件,我需要它直到它得到一个 True 条件。
解决方法
管道是一个工作流,它不能返回。
我不敢说天蓝色数据工厂中没有任何活动可以表示真实情况。就目前而言,我们无法实现。
今天关于你会如何优化这个 javascript if else 语句和怎么优化if else的分享就到这里,希望大家有所收获,若想了解更多关于c – 如何重构此结构,if-else-if-else-if * 100、c# – Visual Studio 2015 Curly Brace Formatting:If,Else If,Else、c# – 重构if if – else if – else with common objects、ELSE 回到 Azure 数据工厂中的 IF-ELSE 语句While True之前等相关知识,可以在本站进行查询。
本文标签: