将2个非常相似的功能合二为一

时间:2019-05-23 15:55:43

标签: angular typescript function

我有这两个功能,它们非常相似:

Public beforeValueChange As Int


Private Sub Staus_BeforeChange(Cancel As Integer)

beforeValueChange = Me.[Status]

End Sub


Private Sub Status_AfterUpdate()

If Not IsNull(Me.[DateCompleted]) Then

    Me.[Status] = beforeValueChange

End If

End Sub

如何将这两个功能转换为一个功能?

2 个答案:

答案 0 :(得分:1)

在这种情况下,您将动态设置属性,

setTimes(pricerules: PriceRule[], _times: string) {
    this[`${_times}s`] = [];
    pricerules.forEach(pricerule => {
      this[`${_times}s`].push({
        hour: Number(pricerule[_times].split(':')[0]),
        minute: Number(pricerule[_times].split(':')[1])
      });
    });
  }

答案 1 :(得分:1)

您可以重构将数组从pricerules投影到函数中的代码,并设置属性并使用bracket notation访问对象属性。

setEndTimes(pricerules: PriceRule[]) {
    this.endTimes = returnTimes(pricerules, 'endTime');
}

setStartTimes(pricerules: PriceRule[]) {
    this.startTimes = returnTimes(pricerules, 'startTime');
}

returnTimes(pricerules, time) {
    return pricerules.map(x => (
    {
                    hour: Number(x[time].split(':')[0]),
                    minute: Number(x[time].split(':')[1])
    }));
}