我正在尝试使用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。我认为我使用的迭代器是错误的。 如果可能的话,如果我能够从块代码中删除创建的arrayCombi,以便以后使用,将会容易得多。
答案 0 :(得分:1)
我想您想要的是topScore是由arrayOne除以arrayTwo的元素组成的arrayarrayCombi的最大值。然后,您需要在外部范围中声明所有这些变量。您还定义了两个单循环,而不是第二个嵌套在第一个循环中。而且您需要使用push(),否则,您只需为arrayCombi重新分配新值[arrayOne [i] / arrayTwo [i]](这意味着它将始终是一个只有一个元素的数组)。尝试这种方式:
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);
}
}