首页 > 解决方案 > 将最大值存储在变量中的惯用方式?

问题描述

假设您有变量let maximum = 0;并且您执行以下操作:

for (let someObject of Objects) {
  maximum = someObject.value > maximum ? someObject.value : maximum;
}

我认为这段代码非常难看。maximum如果出现更大的值,目标只是覆盖。但是,要做到这一点,您必须重复两次someObject.valuemaximum每次都重复两次,这既冗长又烦人。

我的问题:有没有更惯用或更优雅的方式来写这个?

这不起作用,但是,如果>>不是按位运算符而是别的东西,可以这样写:

maximum >> someObject.value;

这要优雅得多。Typescript中是否存在类似的东西?

标签: javascriptnode.jsreactjstypescript

解决方案


映射并传播到Math.max

const maximum = Math.max(0, ...Objects.map(o => o.value));

推荐阅读