0

我有一个简单的 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 进行比较。我没有不知道如何实现这一点,非常感谢您的意见。

4

1 回答 1

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
}
于 2013-10-17T21:18:40.140 回答