clearwater 发表于 2020-2-25 12:47

JS 函数:数组中最大的值 (请不要进来灌水)

本帖最后由 clearwater 于 2020-2-25 12:55 编辑

求教: 下面1代码是某前端的视频教程中的代码。
我觉得老师讲错了,第13行中:

i <= arr.length 是错的;
应该改为 i <= arr.length -1

因为i 是从0开始算。

我把arr.length-1, 代入函数中,答案也是对的。

我的数学不好,常常被案例的各种算法绕晕,所以我看了头也晕晕的。希望大神能确认一下。


<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script>
      // 利用函数求数组 中的最大数值。
      function getArrMax(arr) { // arr 接受一个数组arr =
            var max = arr;
            for (var i = 1; i <= arr.length; i++) {
                if (arr > max) {
                  max = arr;
                }
            }
            return max;
      }
      // getArrMax(); // 实参是一个数组送过去
      // 在我们实际开发里面,我们经常用一个变量来接受 函数的返回结果 使用更简单
      // var re = getArrMax();
      var re = getArrMax();
      console.log(re);
    </script>
</head>

<body>

</body>

</html>

rose521rain 发表于 2020-2-25 12:54

你说的对

clearwater 发表于 2020-2-25 12:55

本帖最后由 clearwater 于 2020-2-25 12:56 编辑

rose521rain 发表于 2020-2-25 12:54
你说的对
谢谢大神啊。

我现在手上没有能量。等下午晚一点或明天给您一个热心。

~~~~~~~~~~~~~~~~~~~~~
后面的回复,如果答案雷同,就不评分辣。

xiuxian250 发表于 2020-2-25 12:57

length -1

却道天凉好个秋 发表于 2020-2-25 13:01

也不能完全说老师的不对,因为从结果来看,他的算法也能实现找到最大值,只是会多做一步无用的操作,就是取一个没有的下标,你写法更为严谨,加油哦

玖公子 发表于 2020-2-25 13:01

我觉得你老师写的是i<length,我们以前学校老师就喜欢这样写。但是我不喜欢这样写,我喜欢写i<=length-1,个人感觉这样容易理解。{:301_987:}

玖公子 发表于 2020-2-25 13:08

不好意思,我看错了,我习惯i从0开始,你这里i=1,那i确实是i<=arr.length,你老师的这段代码没错,你自己运行试试就知道了。{:301_1004:}

你改成length-1结果输出对的,那是因为你那个数组最大值不是最后一个数,程序逻辑是错的,不会比较最后一个数,你console一下就知道了。

clearwater 发表于 2020-2-25 13:09

玖公子 发表于 2020-2-25 13:01
我觉得你老师写的是i

谢谢玖公子。

视频中老师确确实实是这样讲的,而且他的代码笔记也是这样写的。

可能是口误和笔误。

我挺喜欢视频中,这个老师的

玖公子 发表于 2020-2-25 13:10

clearwater 发表于 2020-2-25 13:09
谢谢玖公子。

视频中老师确确实实是这样讲的,而且他的代码笔记也是这样写的。


你看我另外一个回复,是你错了,我刚刚没仔细看,给了你错误的答案,sorry{:301_1008:}

wei125483 发表于 2020-2-25 13:13

两行代码解决的事情var arr = ;
Math.max(...arr)
页: [1] 2 3
查看完整版本: JS 函数:数组中最大的值 (请不要进来灌水)