这是一个非常简单的例子,我希望你们中的一些人能回答.这是一个应该返回参数中给出的最大值的函数.但问题是我不明白它是如何做到的.
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的新手).
(a < b)- 评估为布尔值true/false
+(a < b) 将boolean转换为int,所以你将拥有0或1
[+(a < b)] - 成为数组索引,[0]或[1]
[a,b][+(a<b)]- 使用[0]or [1],将从新的临时数组中取出a或者b值[a,b].