[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как сравнить два объекта?
123456
как сравнить два объекта?

var a = {
1 : 3
};

var b = {
1 : 3
};


alert(a == b);


Oyeme
JSON.stringify(a) === JSON.stringify(b) 
123456
Oyeme
Спасибо!
Invis1ble
Цитата (Oyeme @ 18.03.2016 - 19:38)
JSON.stringify(a) === JSON.stringify(b) 

а порядок сериализации гарантирован спецификацией?

_____________

Профессиональная разработка на заказ

Я на GitHub | второй профиль

sergeiss
Цитата (123456 @ 18.03.2016 - 19:34)
как сравнить два объекта?

Сделать функцию, которая (1) получит список свойств и (2) сравнит их величины. Если свойство является объектом, то потребуется рекурсивный вызов. Можно сначала сравнить сам список свойств, не залезая в величины. Также можно наложить дополнительные условия; например, если свойство является функцией, то исключить из сравнения.

"На коленке" где-то так. Добавь еще внутри цикла анализ, является ли свойство объектом и если да, то тогда вызывай рекурсивно эту же функцию. Это в качестве "домашнего задания" :) Чтобы сам поработал с кодом немного.
Код. Кликнуть для просмотра.
<!DOCTYPE html>
<html>

<head>
<meta
charset="utf-8">
<script>

var
obj1 = {
1: 3
}

var obj2 = {
2: 4
}

function comp( o1, o2) {
if( typeof(o1) != 'object' || typeof(o2) != 'object' ) {
if( o1 == o2 ) {
return true;
}
return false;
}
var keys1 = Object.keys(o1);
var keys2 = Object.keys(o2);
if( keys1.length != keys2.length ) {
return false;
}
for( var i=0; i<keys1.length; i++) {
if( keys1[i] != keys2[i] ) {
return false;
}
if( o1[ keys1[i] ] != o2[ keys2[i] ] ) {
return false;
}
}

return true;
}


</script>
</head>
<body
onload="comp( obj1, obj2 ) ? alert( 'equal' ) : alert('not equal') ">

</body>
</html>


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.