【发布时间】:2021-04-07 06:23:10
【问题描述】:
我有以下代码:
for (const element of elements) {
try {
// eslint-disable-next-line no-await-in-loop
const { a, b, c, d, e } = await func(element.id);
if (tokens.includes(a)) {
saveElement("a", a, element.id); // First arg is the key as string
break;
}
if (tokens.includes(b)) {
saveElement("b", b, element.id);
break;
}
...
if (tokens.includes(e)) {
saveElement("e", e, element.id);
break;
}
} catch (err) {
console.error(err);
}
}
您可以想象,可能有一种方法可以避免这个长长的 if 语句队列...如果您看到,代码中有某种模式,其中唯一不同的是从func() 的结果。
有什么方法可以让这个更干净吗?我的意思是,为了避免意大利面代码。
谢谢。
【问题讨论】:
标签: javascript coding-style refactoring