当前位置: 首页 > 知识库问答 >
问题:

javascript:比较两个数组

晏树
2023-03-14

我有一个简单的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个答案

公孙盛
2023-03-14

定义两个迭代器变量: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
}
 类似资料:
  • 问题内容: 我有这个间隔,当前每5秒执行一次ajax请求。我对声明有疑问。我的代码总是输入它,并且两个json值完全相同,为什么它认为它们不同? 编辑 这是控制台输出(虚线是分隔请求,它不在实际输出中) 问题答案: 不能保证以相同的方式序列化JSON对象,也不能保证属性以相同的顺序进行序列化,使用并不是测试对象相等性的好方法。 一个更好的例子是这样的函数(前一段时间在互联网上找到,希望我能感谢原始

  • 问题内容: 有人可以建议一种使用JavaScript 比较 两个 大于,小于和过去的 日期 的值的方法吗?这些值将来自文本框。 问题答案: 该Date对象会做你想要的东西- 构造一个每个日期,然后用它们进行比较,,或。 在,,,和运营商要求使用作为 要清楚的是,仅直接检查日期对象是否相等将不起作用 我建议您使用下拉列表或日期输入的某些类似约束形式,而不要使用文本框,以免您陷入输入验证的困境。

  • 问题内容: 我想比较两个JavaScript对象数组,以查看它们是否相同。每个数组中的对象可能不会(并且很可能不会)以相同的顺序排列。每个数组最多只能有10个对象。我以为jQuery可以解决这个问题,但是我在网上找不到很多。 我知道可以使用简单的嵌套解决方案,但是有我不知道的内置函数吗? 谢谢。 问题答案: 有一个简单的方法… 如果以上返回true,则即使元素的顺序不同,两个数组也相同。 注意:仅

  • 问题内容: 如果它具有另一个数组的元素,是否还有其他更好的方法可以从一个数组中删除重复项呢,它工作得很好。 问题答案: 或者,随着ES6的推出:

  • 问题内容: 我有一个带有〜已知二进制序列的字节数组。我需要确认二进制序列是应该的。除之外,我还尝试了其他方法,但均无济于事。 问题答案: 在您的示例中,您具有: 在处理对象时,java中会比较 参考值 。您正在检查对by返回的数组的引用是否与所保存的引用相同,这当然永远不会正确。此外,数组类不会覆盖,因此其行为仅是比较参考值。 为了比较两个数组的 内容 ,Arrays类提供了静态数组比较方法。

  • 我会如何比较以下两个日期?