javascript:将两个阵列相互比较挑战

时间:2013-10-17 21:08:50

标签: javascript arrays

我有一个简单的JavaScript问题,我真的可以使用一些帮助! 我试图弄清楚如何比较数组之间的元素,并在下一个循环中再次比较更大的元素。 假设我们有阵列A和阵列B.

if(A[i] < B[i])
//do stuff

else if(B[i] < A[i])
//do stuff

我的问题是,在比较索引处的元素之后,我希望在下一个循环周期中比较更大的元素。

所以如果A = [5,7,4] 和B = [2,8,5]

在第一次循环期间,5与2比较,2越小,因此它就会发生。在下一个循环周期中,我希望将5与8进行比较,而现在用5进行比较。接下来的8与7进行比较,结果发生在7中。接下来的8与4进行比较,结果发生在4.我的避风港我不知道如何实现这一目标,非常感谢您的投入。

1 个答案:

答案 0 :(得分:1)

定义两个迭代器变量:aIdx,bIdx

根据强制条件迭代两个数组。在此迭代中至少完成一个数组遍历。

现在迭代剩余的(A或B)数组。

var aIdx = 0;
var bIdx = 0;
// Iterate both array based on condition
while((aIdx < A.length) && (bIdx < B.length)) {
    if(A[aIdx] < B[bIdx]) {
       ++aIdx;
       // do stuff
    } else {
       ++bIdx;
       // do stuff
    }
}

// At this point, at least one array is completely traversed, now iterate the remaining array
while(aIdx < A.length) {
    ++aIdx;
    // do stuff
}
while (bIdx < B.length) {
    ++bIdx;
    // do stuff
}