【发布时间】:2015-09-07 04:51:51
【问题描述】:
好的。所以我知道 Math.max 不接受数组作为参数,所以我们使用 apply 方法从数组中找到最大值或最小值:
var numbers = [2,3,56,7,1];
var max = Math.max.apply(null,numbers);
console.log(num); //output- 56
是否可以对同一个问题使用 Call 方法。我知道 Call 方法接受参数列表,而 Apply 方法接受单个数组作为参数。
我们如何使用Call方法找到数组的最大值和最小值?
我尝试将数组转换为字符串:-
var s = numbers.join(", ");
但是由于 s 的数据类型是字符串,我们如何将调用方法作为参数列表给出呢?
我做到了:-
console.log(Math.max(null, s)); // output- NaN
我知道这是错误的。
【问题讨论】:
-
当你使用
join时,变量是string类型,包含逗号分隔的数字,所以max返回NaN -
“是否可以对同一个问题使用 Call 方法”
-
我还在努力理解这个问题:-)
-
FYI ~ 使用 ES6 你可以使用spread operator
-
使用
apply的全部意义在于它接受作为数组的参数。所以使用apply的原因是能够传递一个数组,而不是apply的实际预期用途,即能够定义this的值。Math.max.apply(null, [1, 2, 3]);和Math.max(1, 2, 3);是一样的,这就是使用它的重点。所以不,你不能使用call,因为call单独接受参数而不是数组。
标签: javascript call apply