在变量中存储最大值的惯用方法?

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

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

我认为这段代码非常难看。目标只是maximum在出现更大的值时覆盖。但是,要做到这一点,您必须同时重复someObject.valuemaximum各两次,这是冗长和恼人的阅读。

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

这不起作用,但是,如果>>不是按位运算符而是其他东西,则可以编写:

maximum >> someObject.value;

这要优雅得多。打字稿中是否存在这样的东西?

回答

映射并传播到Math.max

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

  • @jfriend00 I don't see the question as asking about optimizing performance but as being idiomatic or elegant. Almost all functional programming techniques in JavaScript will end up creating temporary arrays.

以上是在变量中存储最大值的惯用方法?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>