最近我在阅读有关代码最佳实践的很多文章,而我尝试做的是“避免”重复。 您能帮我命名新功能吗?
Freezable
答案 0 :(得分:2)
主要基于意见的问题,但让我们回答。
使用isInFilter
来命名更有意义,因为使用函数内的event.query
限制很大。
另一个建议是研究更具体的javascript字符串和数组方法。您正在使用角度和打字稿,因此(大部分时间)可以使用任何您喜欢的东西:
filterManufacturers(event) {
return this.manufacturers.filter(({ name }) => this.isInFilter(name, event.query));
}
filterModels(event) {
return this.manufacturers
.filter(({ name }) => this.isInFilter(name, this.vehicle.manufacturer))
.map(({ models }) => models)
.filter((model) => this.isInFilter(model, event.query))
.reduce((acc, curr) => acc.concat(curr), []);
}
isInFilter(input, query) {
return input.toLowerCase().startsWith(query.toLowerCase());
}
这将简化您的代码,因为更少的嵌套({{}{}}
)
答案 1 :(得分:0)
您可以添加函数并在每次需要时调用它,以减少重复。
function toLoop(x, y) {
for (i of y) {
if (i.id === x.id) {
return y.indexOf(i);
}
} return -1;}
然后您在另一个函数上调用它。
if (toLoop(r, resp[key]) === -1) {
resp[key].push(r);
}