鍍金池/ 問答/HTML/ Math.max里用數(shù)組就報Nan

Math.max里用數(shù)組就報Nan

var arr=[1,2,3,45,66]
var num =Math.max(arr.join(','))
alert(num)

為什么用了arr.join(',')后,彈出的num就是Nan呢?
max里面應(yīng)該是放的數(shù)字加逗號吧

回答
編輯回答
舊言

你是想用Math.max找出數(shù)組中最大的數(shù)吧
應(yīng)該這樣寫

var arr = [1,2,3,45,66]
var num = Math.max.apply( null, arr );
console.log( num );

apply的第二個參數(shù)是參數(shù)數(shù)組

如果按照你那樣寫,用arr.join(','),得到的是字符串,就相當(dāng)于

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

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

如果堅持要用字符串拼接參數(shù),可以用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 );    // 66
2017年4月14日 17:02
編輯回答
法克魷
var arr=[1,2,3,45,66]
var num = Math.max(...arr)
//66
2017年2月6日 13:32