javascript - 如何初始化依赖于相同条件的多个常量
问题描述
我需要初始化三个常量来计算一些东西。但是,这三个常量的值都依赖于相同的布尔属性,这就是我目前将它们初始化如下的原因:
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;
现在这些值是实际常量,但对于每次初始化,必须独立检查条件,这可能需要比第一种方法更多的处理时间。
当然,对此的答案可能是基于意见的,我知道我在这里分心,但我对客观的答案感兴趣,为什么一种方法比另一种方法更可取,如果情况确实如此。
好的代码是由无数的小决定组成的,这是一个这样的决定,所以我觉得我的问题是有道理的。
解决方案
您可以定义变量并有条件地设置,最后分配给您的常量:
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;
推荐阅读
- typescript - 打字稿:在可选的第一个泛型之后推断泛型的类型
- c - 让 cmake / msys / appveyor / win10 exe 正常运行
- guid - 如何生成 GUID
- reactjs - Redux Toolkit:如何将使用 createAction 创建的操作作为类型引用
- axon - Axon 框架:重复截止日期
- php - laravel preg_replace 编译失败:字符类中的范围无效
- ios - Xamarin.iOS cannot create/open storyboard
- php - 如何使用 woocommerce_shortcode_products_orderby 按自定义日期字段排序
- c++ - 为什么我的 VS 代码输出窗口显示我的代码仍在运行?
- reactjs - React-Native-Web 未从节点模块依赖项编译反应本机组件