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

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