Javascript - 当数组包含一个对象和一个数组时检查两个数组是否相等

标签 javascript arrays

假设我有一个内部结构如下的数组:

applications = [
    {
        source : {},
        highlight : []
    },
    {
       source : {},
       highlight : []
    },

    // More objects with same structure as objects above. 
]

有时,数组结构可以像下面这样:

  applications = [
    {
        source : {}
    },
    {
       source : {}
    },

    // More objects with same structure as objects above. 
]

«注意» source 和 highlight 有内容,但现在显示在这里。

让我们进一步说我想比较上面的两个数组(含内容)。我想具体检查它们是否相等。

这样做的一个著名功能是:

arraysEqual(arr1, arr2) {
    if (arr1.length !== arr2.length)
        return false;
    for (var i = arr1.length; i--;) {
        if (arr1[i] !== arr2[i])
            return false;
    }
    return true;
}

我想确定一下,这个函数是否可以帮助我确定数组是否相等?

最佳答案

这是简单的方法...

JSON.stringify(arr1) == JSON.stringify(arr2)

您确定的 arraysEqual 函数的问题是,它仅在 arr1 和 arr2 中的项目是字符串或数字(或 bool 值)类型时才有效,即 { source: 1 } 是 != { source: 1 },因为尽管它们具有相同的内容,但它们是不同的对象。

关于Javascript - 当数组包含一个对象和一个数组时检查两个数组是否相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41239651/

相关文章:

C 奇怪的数组行为

javascript - 查询/CSS : How to apply addClass with a delay of 1 sec on mouseenter event.

javascript - 如何使用 scollTop 函数启用 Bootstrap 的平滑滚动?

javascript - Codeigniter 和 AJAX - 关闭编辑模式时重置/清除模式表单

javascript - 在 mysql 数组上使用 php 或 javascript 进行演绎过滤搜索

javascript - 创建集合结构的嵌套数组

javascript - 二维网格如何找到给定节点号的索引

javascript - jquery 中两个文本框的值相同?

c++ - 为什么 strlen() 也适用于字符数组?

c - 在运行时定义数组大小