首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用jQuery比较两个Javascript对象数组

使用jQuery比较两个Javascript对象数组
EN

Stack Overflow用户
提问于 2009-11-21 04:31:27
回答 12查看 131.3K关注 0票数 95

我有两个JavaScript对象数组,我想对它们进行比较,看看它们是否相同。对象在每个数组中的顺序可能不同(并且很可能不会)。每个数组不应该有超过10个对象。我以为jQuery可能有一个很好的解决方案来解决这个问题,但我在网上找不到太多。

我知道粗暴的嵌套$.each(array, function(){})解决方案可以工作,但是有没有我不知道的内置函数呢?

谢谢。

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2011-10-11 21:07:28

有一个简单的方法..。

代码语言:javascript
复制
$(arr1).not(arr2).length === 0 && $(arr2).not(arr1).length === 0

如果以上返回true,则即使元素的顺序不同,两个数组也是相同的。

注意:当使用JSON对象时,这只适用于低于3.0.0版的jquery

票数 280
EN

Stack Overflow用户

发布于 2012-08-30 22:27:49

我的方法完全不同--我使用JSON.stringify将两个集合拉平,并使用普通的字符串比较来检查是否相等。

也就是说。

代码语言:javascript
复制
var arr1 = [
             {Col: 'a', Val: 1}, 
             {Col: 'b', Val: 2}, 
             {Col: 'c', Val: 3}
           ];

var arr2 = [
             {Col: 'x', Val: 24}, 
             {Col: 'y', Val: 25}, 
             {Col: 'z', Val: 26}
           ];

if(JSON.stringify(arr1) == JSON.stringify(arr2)){
    alert('Collections are equal');
}else{
    alert('Collections are not equal');
}

注意:请注意,他的方法假设两个集合都以类似的方式排序,如果不是这样,它将给你一个错误的结果!

票数 15
EN

Stack Overflow用户

发布于 2014-06-06 06:26:18

将两个数组都转换为字符串并进行比较

代码语言:javascript
复制
if (JSON.stringify(array1) == JSON.stringify(array2))
{
    // your code here
}
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1773069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档