因此,假设有一些变量。
let itemMinify = true;
let itemResize = true;
假设我们有一个处理输入的方法链。
something.minify().resize()....etc
是否有一种方法说明是否应根据变量将方法包括在链中?也就是说,如果itemMinify
为假,您会看到类似....
something.resize()....etc
我知道,从技术上讲,您可以吐大量的if语句或switch语句以使其正常工作,但是我觉得必须要有一个更简洁的方法。
答案 0 :(得分:0)
['minify', 'resize'].forEach(action => {something[action]()}
应该可以解决问题。您可以按照自己的方式生成['minify', 'resize']
数组
答案 1 :(得分:0)
有很多方法可以解决这个问题,但是我会认真考虑这里的模式。无论您尝试执行什么操作-代码中都应该清楚这一点。
方法链接没有什么问题,但是感觉就像您在试图强制执行某些操作。
似乎您的变量相关。我可能将这些分组到项目配置对象中。
const itemConfig = {
minify: true,
resize: false,
...so on
};
然后,您可以添加一些方法来遍历config对象并使用相同的键执行条件操作。由于这些对象具有依赖性,因此可以将它们组合到另一个对象中。 (这应该很容易让您知道)
const items = {
minify: function() {
// do some stuff here
},
...so on
};
const itemConfigKeys = Object.keys(itemConfig);
itemConfigKeys.map(function(itemKey) {
if (itemConfig[itemKey]) {
const itemMethod = items[itemKey];
itemMethod();
}
});
我故意在这里变得有点含糊。关于如何解决问题,有很多事情要考虑。这是众多之一。