假设我有一个内部结构如下的数组:
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/