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> 你说的对 本帖最后由 clearwater 于 2020-2-25 12:56 编辑
rose521rain 发表于 2020-2-25 12:54
你说的对
谢谢大神啊。
我现在手上没有能量。等下午晚一点或明天给您一个热心。
~~~~~~~~~~~~~~~~~~~~~
后面的回复,如果答案雷同,就不评分辣。 length -1 也不能完全说老师的不对,因为从结果来看,他的算法也能实现找到最大值,只是会多做一步无用的操作,就是取一个没有的下标,你写法更为严谨,加油哦 我觉得你老师写的是i<length,我们以前学校老师就喜欢这样写。但是我不喜欢这样写,我喜欢写i<=length-1,个人感觉这样容易理解。{:301_987:} 不好意思,我看错了,我习惯i从0开始,你这里i=1,那i确实是i<=arr.length,你老师的这段代码没错,你自己运行试试就知道了。{:301_1004:}
你改成length-1结果输出对的,那是因为你那个数组最大值不是最后一个数,程序逻辑是错的,不会比较最后一个数,你console一下就知道了。 玖公子 发表于 2020-2-25 13:01
我觉得你老师写的是i
谢谢玖公子。
视频中老师确确实实是这样讲的,而且他的代码笔记也是这样写的。
可能是口误和笔误。
我挺喜欢视频中,这个老师的
clearwater 发表于 2020-2-25 13:09
谢谢玖公子。
视频中老师确确实实是这样讲的,而且他的代码笔记也是这样写的。
你看我另外一个回复,是你错了,我刚刚没仔细看,给了你错误的答案,sorry{:301_1008:} 两行代码解决的事情var arr = ;
Math.max(...arr)