Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   проверить Object на пустоту (https://javascript.ru/forum/misc/13891-proverit-object-na-pustotu.html)

KOLANICH 19.12.2010 00:25

проверить Object на пустоту
 
как проверить Object на пустоту
if(obj=={})
не помогает
if(!obj)
тоже

with-love-from-siberia 19.12.2010 01:42

Что Вы подразумеваете под пустотой? Отсутствие собственных свойств? Используйте объект.hasOwnPropery

x-yuri 19.12.2010 05:19

и, собственно, зачем его проверять на пустоту?

Riim 19.12.2010 06:01

Object.isEmpty = function(self) {
	if (self == null) return false;//
	if (self instanceof Array || typeof self == 'string') return !self.length;
	var empty = new self.constructor();
	for (var key in self) {
		if (!(key in empty) || self[key] !== empty[key]) return false;
	}
	return true;
};

KOLANICH 19.12.2010 18:41

в качестве имени свойства может быть пустая строка?

with-love-from-siberia 19.12.2010 19:45

Цитата:

Сообщение от KOLANICH (Сообщение 84451)
в качестве имени свойства может быть пустая строка?

Может. Это же строка. Ключами ассоциативного массива (которым в данном случае представляется объект) могут быть любые строки.

KOLANICH 20.12.2010 13:53

ясно спасибо нашёл способ проверки (он не кроссбраузерный, но мне подойдёт)
if(hashtable.toSource()=="({})")

monolithed 21.12.2010 10:26

Цитата:

Сообщение от KOLANICH
if(hashtable.toSource()=="({})")

ни разу еще не видел, чтобы наличие свойств в объекте проверяли по исходному коду ((

KOLANICH 24.12.2010 20:15

зато потенциально быстрее других способов


Часовой пояс GMT +3, время: 22:32.