在JavaScript中使用Math.max()函数时如何避免NaN?

时间:2014-01-01 12:13:57

标签: javascript

我正在尝试在数组中获取最大值:

maxtime=Math.max.apply( Math, cnttimearr );
alert(maxtime);

但是,我得到NaN而不是最大值。谁能告诉我我做错了什么?

2 个答案:

答案 0 :(得分:5)

阅读the manual

  

如果至少有一个参数无法转换为数字,则结果为NaN

确保数组中的所有元素都可以转换为数字。

> xs = [1, 2, '3'];
[1, 2, "3"]
> Math.max.apply(Math, xs);
3
> xs = [1, 2, 'hello'];
[1, 2, "hello"]
> Math.max.apply(Math, xs);
NaN

答案 1 :(得分:1)

检查您的数组cnttimearr所有值应可转换为数字

cnttimearr= [5, 6, 2, 3, 7];    /*your array should be like this */

maxtime = Math.max.apply(Math, cnttimearr); 
/* This about equal to Math.max(cnttimearr[0], ...) or Math.max(5, 6, ..) */
alert(maxtime);