gpt4 book ai didi

javascript - Math.max 对变量返回 null?

转载 作者:行者123 更新时间:2023-11-28 11:21:17 24 4
gpt4 key购买 nike

因此,我正在构建一段 JavaScript 代码,该代码从提供的每个子数组中返回最大数字的数组。

function largestOfFour(arr) {
var array = [];
for (i = 0; i < arr.length; i++) {
// return arr[i].join() on this line gives 4,5,1,3
array.push(Math.max(arr[i].join()));
}
return array;
}

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);

我的问题是为什么:Math.max(arr[i].join()) 返回空值

如果我回来arr[i].join() 在上一行(如代码注释中),它在第一次迭代时返回给我 4,5,1,3 。如果我输入 Math.max(4,5,1,3) 它会返回 5 这就是我想要的。

arr[i].join() 分配给变量,然后放入 Math.max 也会返回 null。我会通过reduce函数运行Math.max,但它不允许我通过循环运行函数。

我确信这不起作用有一个简单的原因,但我在任何地方都找不到解释。我不需要帮助解决整个问题 - 只需帮助理解为什么 Math.max 不起作用。

最佳答案

Math.max(4,5,1,3)Math.max('4,5,1,3') 是两个截然不同的操作。传递包含逗号分隔值的字符串与传递多个参数不同:

function foo(x, y, z) {
console.log('x', x);
console.log('y', y);
console.log('z', z);
}

foo(1,2,3);
foo('1,2,3');
foo([1,2,3].join());

Math.max 期望传递多个数字,而不是单个字符串

<小时/>

您应该问的问题是:

How can I pass the elements of an array as arguments to a function?

关于javascript - Math.max 对变量返回 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44751817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com