Проверка на пустоту по-человечески на JavaScript
В работе с js часто можно столкнуться с тем, что ты точно не знаешь пустая переменная или нет, но очень надо по ней пройтись через for или отправить на бэк.
Мы можем проверить массив или текст на длину и узнать, пустой он или нет, но как точно определить массив это или обьект?
Если мы напишем typeof, js ответит нам что и [] и <> обьекты
Для таких случаев я использую функцию проверки на пустоту, учитывая все моменты, которые могут пойти не по сценарию.
Первый пример
Представим, что нам нужно отправить форму на сервер используя js.
Мы знаем, что в форме есть поле имя , фамилия, номер телефона и вопрос.
Поля имя и номер телефона обязательные.
Возьмем простую форму отправки:
Отправка происходит с помощью js, поэтому мы дописываем слушатель на форму
Теперь добавим функцию для проверки на пустоту и разберем ее:
Мы видим, что в функцию isEmpty нам приходят данные, которые мы должны проверить и дать ответ. Мы можем проверять число, текст, объекты и массивы. Если мы передадим undefined, функция также скажет нам, что переменная пустая.
Допишем наш код на js с учетом проверки полей формы
Таким образом, мы сделали простую проверку на поля, которую можем использовать при отправке форм.
Второй пример
Мы получаем некоторые данные из api и должны перезаписать данные, если они обновились.
У нас есть массив, в котором находится список записей
В ответе от сервера у нас может быть как массив так и пустота(также с сервера нам может придти любой ответ, кроме нужного, кто их знает бэкендеров).
Мы получили данные и занесли их в переменную response.
Теперь для того, чтобы проверить, нужно нам перезаписывать переменную или нет, мы можем использовать наш код из примера выше
Таким образом, я или не отправлю пустоту на сервер и скажу пользователю, что именно он не заполнил.
Или не начну перебирать пустую переменную, что точно приведет к ошибке.
Как проверить пустой ли массив в Javascript.

В Javascript очень часто приходиться работать с массивами. Одна из проверок, с которой приходится часто встречаться – это проверка на то пустой ли массив или в нем есть какие-то элементы.

Когда вы вручную создаете массив, то там эту проверку производить совершенно не обязательно, там сразу все очевидно.
Другое дело, когда массив формируется автоматически при выполнении каких-либо условий. Например, вы получаете данные из базы данных и нужно проверить нашлось ли что-либо при таких условиях, либо таких записей в базе данных нет.
Если ничего найдено не было, то будет возвращаться пустой массив. Эту ситуацию нужно отследить и делать соответствующие действия.
Давайте посмотрим на упрощенном примере, как это работает.
Итак, предположим, что у нас есть два массива с данными:
dataFull – это массив, который содержит в себе элементы
dataEmpty – это пустой массив.
Задача в том, чтобы программно проверить пустой ли каждый из этих массивов или нет и вывести соответствующее сообщение.
Для проверки на то есть-ли какие-либо элементы в массиве, можно использовать свойство length.
Возвращаясь к задаче, которую мы поставили, решение может выглядеть вот так:
Чтобы посмотреть, как это работает, можете перейти по следующей ссылке:
На этом все. Надеюсь, что в будущем с подобными проверками у вас больше возникать трудностей не будет.
Check if array is empty or null
I would like to know how to check if an array is empty or null in jQuery. I tried array.length === 0 but it didn’t work. It did not throw any error either.
This is the code:
5 Answers 5
As long as your selector is actually working, I see nothing wrong with your code that checks the length of the array. That should do what you want. There are a lot of ways to clean up your code to be simpler and more readable. Here’s a cleaned up version with notes about what I cleaned up.
Some notes on what you were doing and what I changed.
- $(this) is always a valid jQuery object so there’s no reason to ever check if ($(this)) . It may not have any DOM objects inside it, but you can check that with $(this).length if you need to, but that is not necessary here because the .each() loop wouldn’t run if there were no items so $(this) inside your .each() loop will always be something.
- It’s inefficient to use $(this) multiple times in the same function. Much better to get it once into a local variable and then use it from that local variable.
- It’s recommended to initialize arrays with [] rather than new Array() .
- if (value) when value is expected to be a string will both protect from value == null , value == undefined and value == «» so you don’t have to do if (value && (value != «»)) . You can just do: if (value) to check for all three empty conditions.
- if (album_text.length === 0) will tell you if the array is empty as long as it is a valid, initialized array (which it is here).
What are you trying to do with this selector $(«input[name=’album_text[]’]») ?
Как проверить, пустой ли массив в Javascript, и, если он пустой, то создать его?
Это, конечно, попахивает немного, но для сведущих в JS код вполне прозрачный.
- Вконтакте
- Вконтакте
Если под пустым массивом вы подразумеваете, что такого массива вообще нет (на такую мысль наводит ваш код, иначе зачем создавать массив с таким же именем), то вот так примерно: