Есть два массива (полный и пустой):
var massiv1 = [1, 2, 3, 4, 5] // полный массив
var massiv2 = [] // пустой массив
На пустоту массива влияет значение его «длины». Давайте взглянем на стандарт ECMAScript, где описано это свойство у экземпляров класса Array.
То есть у каждого массива есть своё собственное значение длины — свойство «length«. Если массив пустой, то у него нет элементов, а значит и длина такого массива равна 0.
massiv1.length // вернётся 5 massiv2.length // вернётся 0
Решение задачи — написание условия пустоты массива
Решение вопроса сводится к тому, чтобы отлавливать массивы длиной 0. То есть наше условие будет выглядеть примерно так:
arr.length == 0
Мы не присваиваем ноль, а сравниваем с нулём — поэтому два знака равенства.
Как это выглядит в блоке IF?
В блоке IF срабатывает приведение к логическому типу, если мы передаём в него числовое значение (целое).
Длина массива — это всегда целое число. Не важно 0 это, или что-то большее.
В итоге мы можем просто записать выражение arr.length без сравнивания с нулём.
if(arr.length){ console.log("В массиве есть элементы") }else{ console.log("Массив пустой") }
Скриншот работы из консоли браузера:
Оба выражения [].length и [1,2,3].length неявно приводятся к логическому типу внутри круглых скобок оператора if.
Мы можем увидеть это при создании логического объекта через конструктор класса Boolean.
- Boolean([].length)
- Boolean([1,2,3].length)
Функция, которая проверяет массив на пустоту
Напишем функцию, которая будет проверять массив на пустоту и возвращать соответствующее сообщение в консоль браузера:
function is_arr_0 (arr){return !Boolean(arr.length)}
В этом случае нам нужно применить отрицание в виде восклицательного знака, чтобы поменять ИСТИНУ на ЛОЖЬ или наоборот ЛОЖЬ на ИСТИНУ т. к. мы хотим понять пустой ли он или нет.
Если вернётся TRUE — значит массив пустой. Если вернётся FALSE — значит массив полный.
Пример работы:
Или с выводом в консоль
function massiv_pustoi_ili_net (arr){ arr.length == 0 ? console.log("Массив пустой") : console.log("В массиве есть элементы") }
Мы использовали «тернарный оператор» JavaScript. Он работает так:
- Условие
- Знак вопроса «?»
- Действие если условие истинно — TRUE
- Знак двоеточия «:»
- Действие если условие ложно — FALSE
Теперь при помощи этой функции мы будем получать результат полноты/пустоты массива.
Передадим в функцию massiv1:
massiv_pustoi_ili_net (massiv1)
Передадим в функцию massiv2:
massiv_pustoi_ili_net (massiv2)
Итог
Мы выполнили задачу и научились обозначать пустоту массивов в условии.
Информационные ссылки
Стандарт ECMAScript — https://tc39.es/ecma262/multipage/
JavaScript | Как уменьшить длину массива?