为什么 Math.max() 需要扩展运算符?

Mat*_*rby 1 javascript arrays

function findLongestWordLength(str) {
let arr = str.split(' '); 
let lengths = arr.map(word => word.length);

console.log(Math.max(lengths));
}

findLongestWordLength("The quick brown fox jumped over the lazy dog");
Run Code Online (Sandbox Code Playgroud)

console.log(Math.max(lengths))结果NaN,console.log(Math.Max(...lengths))有效。为什么需要扩展长度?Math.Max 采用数组作为参数,&lengths 是数组吗?谢谢

The*_*m01 6

Math.max不采用数组。它需要一组参数。扩展运算符将数组的所有值作为单独的参数提供。

Math.max(...lengths)
Run Code Online (Sandbox Code Playgroud)

实际上在运行时表示为:

Math.max(lengths[0], lengths[1], etc, lengths[n])
Run Code Online (Sandbox Code Playgroud)