命名方法的正确方法

时间:2018-09-03 08:15:37

标签: angular typescript

最近我在阅读有关代码最佳实践的很多文章,而我尝试做的是“避免”重复。 您能帮我命名新功能吗?

Freezable

2 个答案:

答案 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);
    }