我怎样才能更好地写这个?

MEA*_*EAG -1 javascript if-statement

这段代码在我的代码中重复了很多,但是x,当然y还有z变化。有没有更好的办法?

if (x == "hour") {
  y = z * 60;
} else if (x == "day") {
  y = z * 1440;
} else if (x == "week") {
  y = z * 10080;
}
Run Code Online (Sandbox Code Playgroud)

更新..有 store.getters 参与。它们不是普通的变量。

    if (this.tempUsersTriggerIntervelIdentifier === "minute") {
        this.convertedNewUsersTriggerIntervel =
          this.$store.getters.getUsersTriggerTime;
      } else if (this.tempDefaultRunIntervelIdentifier == "hour") {
        this.convertedNewDefaultRunIntervel =
          this.$store.getters.getOrganizationsDefaultTriggerTime * 60;
      } else if (this.tempDefaultRunIntervelIdentifier == "day") {
        this.convertedNewDefaultRunIntervel =
          this.$store.getters.getOrganizationsDefaultTriggerTime * 1440;
      } else if (this.tempDefaultRunIntervelIdentifier == "week") {
        this.convertedNewDefaultRunIntervel =
          this.$store.getters.getOrganizationsDefaultTriggerTime * 10080;
      }
Run Code Online (Sandbox Code Playgroud)

我想做最好的练习。

Joh*_*Pan 5

const factors = {
 'hour' : 60,
 'day'  : 1440,
 'week' : 10080
};
let y = z * factors[x];
Run Code Online (Sandbox Code Playgroud)

试试这个“地图对象”风格。你可以更换

因素[x]

因素.x

但是如果你切换到 ts,它就不是 TypeScript 友好的。

[对更新问题的回答]

你的代码不酷!您检查来自不同对象引用的案例,这些案例不干净且难以掌握。可以干净很多。无论如何,你可以试试这个:

if (this.tempUsersTriggerIntervelIdentifier === "minute") {
    this.convertedNewUsersTriggerIntervel = this.$store.getters.getUsersTriggerTime;
} else {
    this.convertedNewDefaultRunIntervel = 
        this.$store.getters.getOrganizationsDefaultTriggerTime *
        factors[this.tempDefaultRunIntervelIdentifier];
} 
Run Code Online (Sandbox Code Playgroud)