这个最大代码有什么作用?

tem*_*boy 1 javascript

这是一个非常简单的例子,我希望你们中的一些人能回答.这是一个应该返回参数中给出的最大值的函数.但问题是我不明白它是如何做到的.

function max(a, b) {
  return [a, b][ +(a < b) ];
}
Run Code Online (Sandbox Code Playgroud)

我已经习惯了看起来像这样的max函数,所以我不知道上面是如何工作的:

function max(a, b) {
    return a > b ? a : b;
}
Run Code Online (Sandbox Code Playgroud)

如果有人能够向我解释这段代码究竟是如何找到最大的数字,那将非常有帮助.例如,他为什么要使用数组?为什么一元+会以这种方式使用?(我是JS的新手).

Mar*_*c B 6

(a < b)- 评估为布尔值true/false

+(a < b) 将boolean转换为int,所以你将拥有01

[+(a < b)] - 成为数组索引,[0][1]

[a,b][+(a<b)]- 使用[0]or [1],将从新的临时数组中取出a或者b[a,b].