用Math.max调用Array.prototype.map返回NaN数组

时间:2018-10-05 10:59:12

标签: javascript arrays

为什么[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)开始。

2 个答案:

答案 0 :(得分:4)

这是因为map使用三个参数调用了回调:

  1. 当前数组元素。
  2. 当前元素的索引。
  3. 调用了数组[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 operatorPermissionsDao