gpt4 book ai didi

javascript - 如何正确地遍历数组并使用作用域

转载 作者:行者123 更新时间:2023-12-03 00:18:13 24 4
gpt4 key购买 nike

我试图将 arrayOne 的索引除以 arrayTwo 的索引号。为了便于阅读,我根据原始代码编写了这个非常简洁的模型。

尝试使用不同的语法重写代码,但无法修复它。

let arrayOne = [ 2,7,5,89,4,67,8,5,3,8];
let arrayTwo = [ 5,87,5,3,7,89,5,34,7,98];
for( i = 0; i < arrayOne.length; i++){
let arrayCombi = [arrayOne[i] / arrayTwo[i]];
console.log(arrayCombi);
let topScore = 0;
for( a = 0; a < arrayOne.length; a++){
if (arrayCombi[a] > topScore){
topScore = arrayCombi[a];
console.log("Top Score; " + topScore);
}
}
}

出于某种原因,JS 似乎忽略了 If 语句,并将每个 arrayCombi 索引打印为 topScore,而不是仅在 arrayCombi[a] 大于 topScore 时更新 topScore。我认为我错误地使用了迭代器。如果可能的话,如果我能够从稍后使用的 block 代码中删除创建的 arrayCombi,那就容易多了。

最佳答案

我猜你想要的是 topScore 是由 arrayOne 中的元素除以 arrayTwo 组成的数组 arrayCombi 的最大值。然后您需要在外部作用域中声明所有这些变量。您还需要两个单循环,而不是将第二个循环嵌套在第一个循环中。并且您需要使用push(),否则您只需将新值[arrayOne[i]/arrayTwo[i]]重新分配给arrayCombi(这意味着它将始终是一个只有一个元素的数组)。试试这个方法:

let arrayOne = [ 2,7,5,89,4,67,8,5,3,8];
let arrayTwo = [ 5,87,5,3,7,89,5,34,7,98];
let arrayCombi = [];
for( let i = 0; i < arrayOne.length; i++){
arrayCombi.push(arrayOne[i] / arrayTwo[i]);
console.log(arrayCombi);
}
let topScore = 0;
for( let a = 0; a < arrayOne.length; a++){
if (arrayCombi[a] > topScore){
topScore = arrayCombi[a];
console.log("Top Score; " + topScore);
}
}

关于javascript - 如何正确地遍历数组并使用作用域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54438757/

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