javascript数字数组

javascript numerical array

本文关键字:数组 数字 javascript      更新时间:2023-09-26

大家好,只是想知道为什么下面的代码会导致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函数,但接受Array或类似Array的集合作为第二个参数,并将集合的成员作为单独的参数发送。

仅供参考,.apply的第一个参数设置调用上下文。我通过了null,因为您的函数没有使用this

如果您决定让multiply函数采用可变数量的参数,则此技术特别有用。使用.apply,数组中有多少并不重要。他们将以个人身份通过。

您只向multiply传递了一个参数。函数num1内部是一个数组,而num2是未定义的。

你想做的就是这个,

var result = multiply(numbers[0], numbers[1]);

您将一个数组传递到multiply中,multiply需要2个数字。

当你试图乘以一个数组时,结果是NaN是有意义的,NaN代表不是一个数字。

尝试:

var results = multiply(numbers[0], numbers[1]);

调用数组值时,必须定义数组中的值。

例如:

var numbers = Array(10, 2)

JavaScript将数组计数从0开始,因此numbers[0]将等于10,numbers[1]将等于2。