为什么[1, 2, 3].map((x) => Math.max(x))
返回[1, 2, 3]
还[1, 2, 3].map(Math.max)
返回[NaN, NaN, NaN]
吗?
自[1, 2, 3].map(Number)
返回[1, 2, 3]
以来,我曾想过,以同样的方式使用Math.max
也会如此。
特别是从Math.max(3) == Number(3)
开始。
答案 0 :(得分:4)
这是因为map
使用三个参数调用了回调:
[1, 2, 3].map(Math.max)
。所以[1, 2, 3].map((x) => Math.max(x))
不等于[1, 2, 3].map((x, i, arr) => Math.max(x, i, arr))
,而是Math.max(1, 0, [1, 2, 3])
。
NaN
是[1, 2, 3]
,因为"1,2,3"
数组在字符串化时变成NaN
,在转换成数字时变成@Before
public void OpenCarUrl(){WebDriverRunner.getWebDriver().get("MyUrl");}
。
答案 1 :(得分:-2)
您可以使用spread operator:PermissionsDao