JavaScript | Сколько строк в массиве? — efim360.ru

JavaScript | Сколько строк в массиве?

Как узнать какое количество строк находится в массиве?

Когда мы говорим о массиве, то мы работаем с элементами и их индексами. В данном случае предполагается, что элементами массива являются строковые значения.

То есть по сути нам нужно узнать сколько элементов находится в массиве. Как это сделать?

Пусть у нас будет массив:

var massiv = ["stroka1","stroka6","stroka3","stroka31","stroka600","stroka43434"]

Чтобы узнать сколько строк находится в этом массиве, нужно просто написать называние массива, затем поставить точку, затем написать слово "length":

massiv.length

Вывод в консоль браузера:

Массив из шести строк - JavaScript
Массив из шести строк - JavaScript

 

Если в массиве присутствуют смешанные данные?

var massiv = [ {'ff':'ff'}, 123, [],  "stroka1", [456], "stroka3", {'dd':'rr'}, "stroka2", 567, "stroka5", 183, "stroka6", true, false, "stroka4"]

Как узнать количество строковых данных в смешанном массиве?

Эту задачу нужно разделить на два этапа:

  1. Сначала фильтруем массив по типу данных String
  2. Потом считаем количество элементов после фильтрации

Фильтруем

Мы используем свойство конструктора, в котором был создан каждый элемент массива. Если элемент был создан конструктором класса String, то мы закидываем его в новый массив. Если нет, то проходим мимо.

Любой элемент массива будет принадлежать какому-то классу. По другому быть не может. Любой класс имеет свой собственный конструктор, поэтому у любого элемента массива можно получить название класса.

massiv.filter(i => i.constructor.name == "String")
Фильтруем массив на строки - JavaScript
Фильтруем массив на строки - JavaScript

После такой фильтрации мы получим только строковые значения. Любые числа, массивы, объекты, булевы и т.п. будут отброшены.

Считаем

massiv.filter(i => i.constructor.name == "String").length
Фильтруем массив на строки и считаем количество - JavaScript
Фильтруем массив на строки и считаем количество - JavaScript

Фильтр возвращает нам новый массив, в котором нужно просто получить значение свойства "length".

В нашем случае получится число 6. То есть из исходного массива мы извлекли 6 строковых элементов.

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

JavaScript | Строки (String)

Стандарт ECMAScript - Раздел "22.1 String Objects" - https://tc39.es/ecma262/#sec-string-objects

Стандарт ECMAScript - Раздел "23.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )" - https://tc39.es/ecma262/#sec-array.prototype.filter

Поделись записью