JavaScript | Как обозначить пустой массив в условии?

JavaScript | Как обозначить пустой массив в условии?

Есть два массива (полный и пустой):

var massiv1 = [1, 2, 3, 4, 5] // полный массив
var massiv2 = []              // пустой массив
Полный и пустой массивы - JavaScript
Полный и пустой массивы — JavaScript

На пустоту массива влияет значение его «длины». Давайте взглянем на стандарт ECMAScript, где описано это свойство у экземпляров класса Array.

Стандарт ECMAScript - свойства экземпляров Array
Стандарт ECMAScript — свойства экземпляров Array

 

То есть у каждого массива есть своё собственное значение длины — свойство «length«. Если массив пустой, то у него нет элементов, а значит и длина такого массива равна 0.

massiv1.length // вернётся 5
massiv2.length // вернётся 0
Разные длины массивов - JavaScript
Разные длины массивов — JavaScript

 

Решение задачи — написание условия пустоты массива

Решение вопроса сводится к тому, чтобы отлавливать массивы длиной 0. То есть наше условие будет выглядеть примерно так:

arr.length == 0

Мы не присваиваем ноль, а сравниваем с нулём — поэтому два знака равенства.

 

Как это выглядит в блоке IF?

В блоке IF срабатывает приведение к логическому типу, если мы передаём в него числовое значение (целое).

Длина массива — это всегда целое число. Не важно 0 это, или что-то большее.

В итоге мы можем просто записать выражение arr.length без сравнивания с нулём.

if(arr.length){
  console.log("В массиве есть элементы")
}else{
  console.log("Массив пустой")
}

Скриншот работы из консоли браузера:

Условие пустоты массива в JavaScript
Условие пустоты массива в JavaScript

Оба выражения [].length и [1,2,3].length неявно приводятся к логическому типу внутри круглых скобок оператора if.

Мы можем увидеть это при создании логического объекта через конструктор класса Boolean.

  • Boolean([].length)
  • Boolean([1,2,3].length)
Приведение длины массива к логическому типу через класс Boolean в JavaScript
Приведение длины массива к логическому типу через класс Boolean в JavaScript

 

 

Функция, которая проверяет массив на пустоту

Напишем функцию, которая будет проверять массив на пустоту и возвращать соответствующее сообщение в консоль браузера:

function is_arr_0 (arr){return !Boolean(arr.length)}

В этом случае нам нужно применить отрицание в виде восклицательного знака, чтобы поменять ИСТИНУ на ЛОЖЬ или наоборот ЛОЖЬ на ИСТИНУ т. к. мы хотим понять пустой ли он или нет.

Если вернётся TRUE — значит массив пустой. Если вернётся FALSE — значит массив полный.

Пример работы:

Функция проверки массива на пустоту - JavaScript возвращает логический тип
Функция проверки массива на пустоту — JavaScript возвращает логический тип

Или с выводом в консоль

function massiv_pustoi_ili_net (arr){
   arr.length == 0 ? console.log("Массив пустой") : console.log("В массиве есть элементы")
}
Функция проверки массива на пустоту - JavaScript
Функция проверки массива на пустоту — JavaScript

Мы использовали «тернарный оператор» JavaScript. Он работает так:

  1. Условие
  2. Знак вопроса «?»
  3. Действие если условие истинно — TRUE
  4. Знак двоеточия «:»
  5. Действие если условие ложно — FALSE

 

Теперь при помощи этой функции мы будем получать результат полноты/пустоты массива.

Передадим в функцию massiv1:

massiv_pustoi_ili_net (massiv1)
Ответ консоли - массив полный - JavaScript
Ответ консоли — массив полный — JavaScript

Передадим в функцию massiv2:

massiv_pustoi_ili_net (massiv2)
Ответ консоли - массив пустой - JavaScript
Ответ консоли — массив пустой — JavaScript

 

Итог

Мы выполнили задачу и научились обозначать пустоту массивов в условии.

 

Информационные ссылки

Стандарт ECMAScripthttps://tc39.es/ecma262/multipage/

JavaScript | Массивы (Array)

JavaScript | Как уменьшить длину массива?

JavaScript | Как увеличить длину массива?

JavaScript | Как изменить длину массива?