作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在本例中,我使用了两个并行数组(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;
}
最佳答案
http://en.wikipedia.org/wiki/Parallel_array
In computing, a group of parallel arrays is a data structure for representing arrays of records. It keeps a separate, homogeneous array for each field of the record, each having the same number of elements
如果它们都真正平行,则两个阵列的长度将相同。
所以 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
关于javascript - 单个 for 循环如何遍历多个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30086470/
我是一名优秀的程序员,十分优秀!