вторник, 26 августа 2014 г.

JavaScript Проверка пустого объекта {}

// Speed up calls to hasOwnProperty
var hasOwnProperty = Object.prototype.hasOwnProperty;

function isEmpty(obj) {

    // null and undefined are "empty"
    if (obj == null) return true;

    // Assume if it has a length property with a non-zero value
    // that that property is correct.
    if (obj.length > 0)    return false;
    if (obj.length === 0)  return true;

    // Otherwise, does it have any properties of its own?
    // Note that this doesn't handle
    // toString and valueOf enumeration bugs in IE < 9
    for (var key in obj) {
        if (hasOwnProperty.call(obj, key)) {return false;}
    }

    return true;
}

Examples:

isEmpty(""); // true
isEmpty([]); // true
isEmpty({}); // true
isEmpty({length: 0, custom_property: []}); // true

isEmpty("Hello"); // false
isEmpty([1,2,3]); // false
isEmpty({test: 1}); // false
isEmpty({length: 3, custom_property: [1,2,3]}); // false

jQuery.isEmptyObject should be listed here too:

if ($.isEmptyObject(obj)) {
    // do something
}

Комментариев нет:

Отправить комментарий