我有一个简单的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.我的避风港我不知道如何实现这一目标,非常感谢您的投入。
答案 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
}