var arr=[1,2,3,45,66]var num =Math.max(arr.join(','))alert(num)为什么用了arr.join(',')后,弹出的num就是Nan呢?max里面应该是放的数字加逗号吧
1 回答
慕村9548890
TA贡献1884条经验 获得超4个赞
你是想用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' );
里面是字符串,肯定是不对的
如果坚持要用字符串拼接参数,可以用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
添加回答
举报
0/150
提交
取消