大家好,只是想知道为什么下面的代码会导致 NaN?
function multiply(num1,num2){
var total = num1 * num2;
return total;
}
var numbers = Array(10,2);
var results = multiply(numbers);
alert (results);
谢谢
大家好,只是想知道为什么下面的代码会导致 NaN?
function multiply(num1,num2){
var total = num1 * num2;
return total;
}
var numbers = Array(10,2);
var results = multiply(numbers);
alert (results);
谢谢
用于.apply
调用函数。
var results = multiply.apply(null, numbers);
该.apply
方法调用该multiply
函数,但接受一个数组或类似数组的集合作为第二个参数,并将集合的成员作为单独的参数发送。
仅供参考,.apply
设置调用上下文的第一个参数。我通过了null
,因为您的函数没有使用this
.
如果您决定让multiply
函数采用可变数量的参数,则此技术特别有用。使用.apply
,数组中有多少并不重要。他们将作为个人通过。
您只将一个参数传递给multiply
. 函数内部num1
是一个数组,num2
未定义。
你想做的是这个
var result = multiply(numbers[0], numbers[1]);
您将一个数组传递给 multiply 需要 2 个数字。
当您尝试将数组相乘时,结果是 NaN 是有道理的,它代表 Not a number。
尝试:
var results = multiply(numbers[0], numbers[1]);
调用数组值时,必须在数组中定义值。
例如:
var numbers = Array(10, 2)
JavaScript 从 0 开始数组计数,因此numbers[0]
等于 10 并且numbers[1]
等于 2。