var foo = { hello: 'world', holy: { shit: 'batman' } };
var bar = { ... };
Я хотел бы сравнить два (foo == bar).
Ответ 1
Это хорошо работает, но только в некоторых случаях:
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
Ответ 2
jQuery не имеет встроенной утилиты для сравнения объектов. Из вашего сообщения не совсем ясно, какую информацию вы хотите получить от двух ваших объектов. Вы пытаетесь их отсортировать?
В зависимости от того, что вы пытаетесь сделать, вы, возможно, сможете удовлетворить ваш прецедент, используя один из методов утилиты jQuery. См., Например: jQuery.extend, jQuery.each, jQuery.map и jQuery.merge. jQuery в первую очередь занимается манипулированием элементами DOM; он не имеет встроенной функции для сортировки списка (хотя вы можете найти плагин).