Подтвердить что ты не робот

Сравнение собственных javascript-объектов с jQuery

Возможный дубликат:
Сравнение объектов в JavaScript

У меня есть два собственных JavaScript-объекта:

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

Я хотел бы сравнить два (foo == bar).

4b9b3361

Ответ 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; он не имеет встроенной функции для сортировки списка (хотя вы можете найти плагин).

Проверьте документацию утилиты jQuery:

http://api.jquery.com/category/utilities/

Кроме того, проверьте array.sort(), который, по-видимому, встроен в javascript:

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