为什么Math.max和Math.min打印出NaN?代码如下

为什么Math.max和Math.min打印出NaN?代码如下

<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <title>Math.random()</title>

</head>

<body>

<script>

    var arr=new Array(10); 

    //给arr数组赋值

    for(var i=0;i<10;i++)

        {   //随机产生十个0-100之间的数

            arr[i]=Math.floor(Math.random()*100);

        }

    //打印arr数组的类型

    document.write(typeof(arr)+'<br>');

    //打印arr数组

    document.write(arr+'<br>');

    //分别打印数组内每个数据的类型

    for(i=0;i<arr.length;i++)

        document.write(typeof(arr[i])+'<br>');

    //给arr数组排序给到新的数组newarr

    var newarr=arr.sort(function(a,b){ return b-a});

        document.write(typeof(newarr)+'<br>');

    //打印newarr数组的类型

    document.write(newarr+'<br>');

    //分别打印newarr数组内的每个项的类型

    for(i=0;i<newarr.length;i++)

        document.write(typeof(arr[i])+'<br>');

    //为什么用Math.max和Math.min会打印出NaN,数组内的每个数据类型都是number!!!!!

    document.write("这组数中最大的值是:"+Math.max(newarr)+",最小的值是:"+Math.min(newarr));

</script>

</body>

</html>


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕码 2020-04-08 16:37:15

同学你好, Math.max和Math.min的参数类型不对。Math.max和Math.min不能直接传入数组,这里newarr就是一个数组:

http://img1.sycdn.imooc.com//climg/5e8d8d27098a6bdf03490046.jpg

传入之后,数组返回的就是NaN:

http://img1.sycdn.imooc.com//climg/5e8d8cce091e3ffc03130106.jpg

如果这里要获取最大值和最小值,可以使用数组下标方式。如下:

http://img1.sycdn.imooc.com//climg/5e8d8d0309a4f16d08010057.jpg

如果我的回答帮到了你,欢迎采纳,祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师