使用JavaScript将var res更改为给定数组的最大值
这是一个简单的例子,我只需要找到给定数组中的最大值。唯一的公理是数组中的所有项都是数字。我的问题是res变量没有改变。我在Python中也尝试过同样的方法,但在JavaScript中,该值似乎没有改变或更大,因此它只为if改变,然后返回到其原始值 因此,我尝试了摆弄var关键字,我尝试了将var放置在代码的不同位置(for循环外、for循环内、if语句中),我尝试了在没有var关键字的情况下也这样做,但仍然不起作用使用JavaScript将var res更改为给定数组的最大值,javascript,python,function,scope,Javascript,Python,Function,Scope,这是一个简单的例子,我只需要找到给定数组中的最大值。唯一的公理是数组中的所有项都是数字。我的问题是res变量没有改变。我在Python中也尝试过同样的方法,但在JavaScript中,该值似乎没有改变或更大,因此它只为if改变,然后返回到其原始值 因此,我尝试了摆弄var关键字,我尝试了将var放置在代码的不同位置(for循环外、for循环内、if语句中),我尝试了在没有var关键字的情况下也这样做,但仍然不起作用 function max(arr){ var
function max(arr){
var res = 0;
for (i=1; i>arr.length; i++){
if (arr[i-1]>arr[i]){
res = arr[i-1]
}
else if (arr[i-1]<arr[i]){
res = arr[i]
}
}
for (i=0; i<arr.length; i++){
if (res<arr[i]){
res = arr[i]
}
}
console.log(res)
}
函数最大值(arr){
var-res=0;
对于(i=1;i>arr.length;i++){
if(arr[i-1]>arr[i]){
res=arr[i-1]
}
否则如果(arr[i-1]你有一些错误,我已经对它们进行了评论。首先,你需要在循环中的I
前面写入let
或var
,如果你不这样做I
将成为一个全局变量。你可以阅读关于块作用域变量的内容。你的第二个循环没有意义,因为你需要检查I
是否小于arr、 长度
函数最大值(arr){
var-res=0;
对于(设i=1;i>arr.length;i++){//let i
if(arr[i-1]>arr[i]){
res=arr[i-1]
}
否则,如果(arr[i-1]您的循环从未在这种情况下工作:
i > arr.length
因为我是以1
开头的,而这只是true
的空数组
使用单循环和单检查的更好方法
函数最大值(数组){
var max=数组[0],
我
对于(i=1;imax)max=array[i];
}
返回最大值;
}
console.log(最大值([1,2,3,7,5,6]))
Damn我没有注意到I>arr.length。感谢您指出:).所以这似乎是我的一个问题,它的范围。有趣。谢谢你的快速响应@bashti,很好的昵称,如果这对你来说更容易使用,你可以检查我的编辑。谢谢:D,是的,这将是一个更快的解决方案,但我必须做这件事,因为我仍然在学习。很好的解决方案没有想到这样做。Well这就是我从醒来就开始编程的结果:D也是的,我只是没有注意到,但如果我进入了那个循环,我会注意到的。
i > arr.length