Дополнительно
Как проверить пустой объект JavaScript?
После AJAX-запроса иногда мое приложение может вернуть пустой объект, например:
var a = {};
Как я могу проверить, так ли это?
2680
20
ECMA 7+:
ECMA 5+:
До ECMA 5:
jQuery:
lodash:
Underscore:
Hoek.
ExtJS
AngularJS (версия 1)
Ramda
Нет простого способа сделать это. Вам придется явно перебирать свойства:
Если имеется поддержка ECMAScript 5, вы можете использовать
Object.keys()
вместо этого:Для тех, кто столкнулся с той же проблемой, но использует jQuery, можно использовать jQuery.isEmptyObject.
Это моя предпочтительным решением:
Вы можете использовать Underscore.js.
см http://bencollier.net/2011/04/javascript-is-an-object-empty/
Как насчет С помощью JSON.преобразовать в строки? Это почти во всех современных браузерах.
Старый вопрос, но просто имел эту проблему. В том числе jQuery-это не очень хорошая идея, если ваша цель только, чтобы проверить, если объект не пустой. Вместо этого, просто глубоко в в jQuery's код, и вы получите ответ:
Я просто столкнулся с аналогичной ситуацией. Я не'т хотите использовать jQuery, и хотел сделать это с помощью чистого JavaScript.
И то, что я сделал, использовано следующее условие, и он работал для меня.
Не равен, используйте это :
в JSON.преобразовать в строки(параметр obj) !== '{}'
Проверить это [JSFiddle][1]
Есть простой способ если вы находитесь на новый браузер.
Объект.ключи(объект).длина == 0
Вы можете проверить количество ключей объекта:
Например:
Затем вы можете легко проверить это в коде обратного вызова AJAX.
Другой способ проверки:
EDIT: Если вы используете какую-либо библиотеку JSON (например, JSON.js), вы можете попробовать функцию JSON.encode() и проверить результат на пустую строку значений.
Используя Объект.ключи(объект).длина (как предложено выше для ECMA 5+) в 10 раз медленнее на пустые объекты! сохранить со старой школы (для...В) вариант.
Протестировано под узел, хром, Firefox и IE 9, то становится очевидным, что для большинства случаев использования:
Итог производительность мудрый, используйте:
или
Ознакомиться с подробными результатами тестирования и тестирования кода в https://stackoverflow.com/questions/4994201/is-object-empty/34491287#34491287
Я'вэ, созданных полной функции, чтобы определить, если объект пуст.
Он использует объект [
.ключи
][МДН-объект-ключи] от в ECMAScript 5 (в ES5) функциональность, если это возможно для достижения лучшей производительности (см. Таблица совместимости) и откаты к наиболее совместимых подхода для старых двигателей (браузеры).Решение №
в
Здесь'ы суть для этого кода.
И здесь'ы [JSFiddle][jsfiddle] с демонстрацией и простой тест.
Я надеюсь, что это поможет кому-то. Ура!
Я использую это.
Например:
здесь
Обновление
Или
вы можете использовать реализацию на jQuery из isEmptyObject
В следующем примере показано, как проверить, если JavaScript-объект пустой, если пустой то значит имеет собственные свойства.
Скрипт работает на ЕС6.
в
в
в jQuery есть isEmptyObject специальная функция
()
для этого случая:Подробнее о http://api.jquery.com/jQuery.isEmptyObject/
Под капотом все пустые методы проверки во всех библиотеках используйте клавиши объект проверки логикой. Его странный способ, чтобы сделать это понятным, который вы можете положить в способ, описанный здесь.
Который превратился в в ES5, теперь просто вы можете проверить объект's длина ключей, используя объект.Метод ключей, который берет свой объект, как это's параметр:
Или если вы используете Лодашь (Вы должны быть) потом.