单个for循环如何迭代多个数组?

时间:2015-05-06 20:03:21

标签: javascript arrays function

在这种情况下,我使用两个并行数组(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;
}

1 个答案:

答案 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