首页 > 解决方案 > 如何初始化依赖于相同条件的多个常量

问题描述

我需要初始化三个常量来计算一些东西。但是,这三个常量的值都依赖于相同的布尔属性,这就是我目前将它们初始化如下的原因:

let startIndex = 0;
let endIndex   = this.count;
let increment  = 1;
if(this.revert) {
  startIndex = this.count;
  endIndex   = 0;
  increment  = -1;
}

这里明显的缺点是我现在处理的是变量,而不是常量。因此,我无法避免意外覆盖它们的值。

我可以按如下方式初始化它们以防止这种缺点:

const startIndex = this.revert ? this.count : 0;
const endIndex   = this.revert ? 0 : this.count;
const increment  = this.revert ? -1 : 1;

现在这些值是实际常量,但对于每次初始化,必须独立检查条件,这可能需要比第一种方法更多的处理时间。

当然,对此的答案可能是基于意见的,我知道我在这里分心,但我对客观的答案感兴趣,为什么一种方法比另一种方法更可取,如果情况确实如此。

好的代码是由无数的小决定组成的,这是一个这样的决定,所以我觉得我的问题是有道理的。

标签: javascript

解决方案


您可以定义变量并有条件地设置,最后分配给您的常量:

let startIndex = 0;
let endIndex   = this.count;
let increment  = 1;
if(this.revert) {
  startIndex = this.count;
  endIndex   = 0;
  increment  = -1;
}

const StartIndex = startIndex;
const EndIndex = endIndex;
const Increment = incremen;

推荐阅读