为了账号安全,请及时绑定邮箱和手机立即绑定

Math.max里用数组就报Nan

Math.max里用数组就报Nan

慕容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里面应该是放的数字加逗号吧
查看完整描述

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


查看完整回答
1 反对 回复 2019-03-08
  • 1 回答
  • 0 关注
  • 1176 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信