Math.max里用数组就报Nan

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

var num =Math.max(arr.join(','))

alert(num)

为什么用了arr.join(',')后,弹出的num就是Nan呢?

max里面应该是放的数字加逗号吧


慕容708150
浏览 1179回答 1
1回答

慕村9548890

你是想用Math.max找出数组中最大的数吧应该这样写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' );里面是字符串,肯定是不对的如果坚持要用字符串拼接参数,可以用evalvar 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 );    // 66
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript