将本机javascript对象与jQuery进行比较

Comparing native javascript objects with jQuery

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Object comparison in JavaScript

我有两个本机javascript对象:

1
2
var foo = { hello: 'world', holy: { shit: 'batman' } };
var bar = { ... };

我想比较一下这两者(foo==bar)。


这很有效,但仅在某些情况下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
var obj1 = {n1:"v1", n2:"v2"},
    obj2 = {n1:"v1", n2:"v2"},
    obj3 = {n2:"v2", n1:"v1"},
    obj4 = {n2:"v2", n1:"v1", f: function(){}};


// this will work correctly:
JSON.stringify(obj1) == JSON.stringify(obj2); //true


// but this fails :(
JSON.stringify(obj2) == JSON.stringify(obj3); //false


// and this :(
JSON.stringify(obj3) == JSON.stringify(obj4); //true


jquery没有用于比较对象的内置实用程序。从你的文章中不清楚你想从你的两个对象中得到什么信息。你想把它们分类吗?

但是,根据您尝试做的事情,您可能能够通过使用jquery的实用方法之一来满足您的用例。例如,参见:jQuery.extendjQuery.eachjQuery.mapjQuery.merge。jquery主要处理DOM元素;它没有用于列表排序的内置功能(尽管您可能可以找到一个插件)。

查看jquery实用程序文档:

http://api.jquery.com/category/utilities(类别/实用程序)/

此外,还可以查看array.sort(),它显然内置于javascript中:

http://www.javascriptkit.com/javautors/arraysort.shtml