gpt4 book ai didi

javascript - 分解这个嵌套的 for 循环

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:20:56 24 4
gpt4 key购买 nike

我试图理解嵌套的 forloops,我发现这段代码应该很简单,我希望你确保我理解它。

var maximum = function(arr){
var out;
for(var i = 0; i < arr.length; i++){
out = true;
console.log(i)
for(var j = 0; j < arr.length; j++){

if(arr[i] < arr[j]){
// console.log(i, j)
out = false;
// console.log(arr[i], arr[j], " out ", out)
}
}
if(out) return arr[i];
}
// return null;
}
console.log(maximum([1,2,5]))

首先我不确定他们为什么定义 out = true但我现在想理解循环

所以对于第一次迭代

i设置为 0 和 out设置为 true 然后我们进入第二个 for 循环

我= 0

在第二个 forloop 中:for(var j = 0; j < arr.length; j++){

我们测试(arr[i] < arr[j]) 3次为数组长度

内部循环中的第一个测试:arr[0] = 1 < arr[0] = 1 ==false(所以我们什么都不做?不应该保持 true 我们返回 if(out) return arr[i]; 吗?)

内循环中的第二次测试 arr[0] = 1 < arr[1] = 2 == true.. set out为假

内部循环中的第 3 次测试 arr[0] = 1 < arr[2] = 5 == true .. set out为假

然后我们去制作i 1

然后我们测试arr[i] = 2 < arr[j] 是 1 吗? false 我们不打算 false

是 arr[i] = 2 < arr[j] 还是 2? false 我们不打算 false

是 arr[i] = 2 < arr[j] 还是 5?是的,我们设置了out为真

然后我们设置i至 2到达 [2] = 5是 arr[2] 是 5 < arr[0] 是 1 这是假的所以 out 仍然是真的

是 arr[2] 是 5 < arr[1] 是 2 这是假的所以 out 仍然是真的

是 arr[2] 是 5 < arr[2] 是 5 这是假的所以 out 仍然是真的

嵌套循环的更正过程是什么?

最佳答案

是的,您已经掌握了要点。内部循环(使用 j 作为计数器变量的循环)将运行 3 次,每次外部循环(i 循环)运行一次。

理解这一点的更简单方法是运行这段代码:

for (var i = 0; i < 3; i += 1){
console.log("outer loop")
for (var j = 0; j < 3; j += 1){
console.log("inner loop")
}
}

这使您可以只关注嵌套循环,而不是绊线变量以及您发布的原始代码中的此类变量。

关于javascript - 分解这个嵌套的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34057086/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com