关于Math.max对array.join()处理返回NaN

Posted kyshu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Math.max对array.join()处理返回NaN相关的知识,希望对你有一定的参考价值。

前段时间在项目中用到对数组进行join,在Math.max处理返回数据NaN:
var arr = [1,2,3,45,66] var num = Math.max.apply( null, arr ); console.log( num );

apply的第二个参数是参数数组

如果按照你那样写,用arr.join(‘,‘),得到的是字符串,就相当于

Math.max( ‘1,2,3,45,66‘ );

里面是字符串,肯定是不对的

如果坚持要用字符串拼接参数,可以用eval

var arr = [1,2,3,45,66]
var num = eval( ‘Math.max(‘ + arr.join( ‘,‘ ) + ‘)‘ );
console.log( num );    // 66

es6写法:

var arr = [1,2,3,45,66]

var num = Math.max( ...arr );
console.log( num );   

以上是关于关于Math.max对array.join()处理返回NaN的主要内容,如果未能解决你的问题,请参考以下文章

关于Math常用的方法

找出正数组的最大差值

是否可以将math.max用于对象数组?

关于JavaScript里的数值及运算

FCC 中级算法题 对所有的数字求和

math对象的主要方法