慕容708150
2019-03-04 15:43:42
var arr=[1,2,3,45,66]var num =Math.max(arr.join(','))alert(num)為什么用了arr.join(',')后,彈出的num就是Nan呢?max里面應(yīng)該是放的數(shù)字加逗號吧
1 回答

慕村9548890
TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個贊
你是想用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' );
里面是字符串,肯定是不對的
如果堅(jiān)持要用字符串拼接參數(shù),可以用eval
var arr = [1,2,3,45,66]
var num = eval( 'Math.max(' + arr.join( ',' ) + ')' );
console.log( num ); // 66
再補(bǔ)充一個ES6的寫法
var arr = [1,2,3,45,66]
var num = Math.max( ...arr );
console.log( num ); // 66
添加回答
舉報
0/150
提交
取消