在这种情况下,我使用两个并行数组(cost[]
和scores[]
),这两个数组上的数据彼此平行。
这段代码是正确的,因为我从我正在使用的书中复制它。我没有得到的是这个for循环如何为成本数组工作。我得到的是我们将两个数组作为参数传递给函数,但在for循环中只有scores.length
,所以不应该是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;
}
答案 0 :(得分:4)
http://en.wikipedia.org/wiki/Parallel_array
在计算中,一组并行数组是一种数据结构 表示记录数组。它保持一个单独的,同类的阵列 对于记录的每个字段,每个字段具有相同数量的元素
如果它们都是真正平行的,那么两个数组的长度都是相同的。
所以scores.length == costs.length
。您只需要使用一个用于循环条件,并使用相同的索引变量来访问两个数组。
实施例
var a = [1,2,3];
var b = [4,5,6];
for(var i=0; i<a.length; i++){
console.log(a[i] +" "+ b[i]);
}
输出:
1 4
2 5
3 6
使用b的长度
for(var i=0; i<b.length; i++){
console.log(a[i] +" "+ b[i]);
}
输出:
1 4
2 5
3 6