W tym przypadku używam dwóch równoległych tablic (cost[]
i scores[]
), oba z danymi na nich równoległymi.W jaki sposób pojedyncza pętla dla iteracji może przechodzić przez wiele tablic?
Ten kod jest prawidłowy i kopiuję go z książki, której używam. Czego nie otrzymuję, to jak ta pętla może działać dla tablicy kosztów. Rozumiemy, że przekazujemy obydwie tablice jako parametry w funkcji, ale w pętli for jest tylko scores.length
, więc nie powinna to być kolejna pętla dla cost.lenght
?
function getMostCostEffectiveSolution(scores, costs, highScore)
var cost = 100;
var index;
for (var i = 0; i < scores.length; i++) {
if (scores[i] == highScore) {
if(cost > cost[i]) {
index = i;
cost = cost[i];
}
}
}
return index;
}
to lo OK jak kod zakłada, że zarówno koszty, jak i wyniki mają tę samą długość. Jeśli obie mają taką samą długość, wystarczy użyć jednej z ich długości. Zauważ, że masz literówkę, w której używasz 'cost [i]', gdy prawdopodobnie powinno to być 'costs [i]' –
Jeśli są to tablice równoległe, czy ich długości nie są takie same? – froadie
Myślę, że w tym przypadku obie długości macierzy są takie same. –