Найти в Дзене
Intern Fronted на JS

Задачка на аналитику пользователей - JS

Всем привет! Сегодня у меня была на решение такая задача: Напиши программу, которая будет собирать статистику из пользовательских данных. Массив с данными записан в переменную usersData. Найди все элементы массива с данными, в которых содержится определённая строка. Эта искомая строка записана в переменную query. Количество подходящих элементов (пользователей), которые подходят под критерий, запиши в переменную matchingUsers. Чтобы проверить наличие строки в элементе массива, используй команду indexOf(). И даны входные данные: var usersData = ['Виталий Иванович', 'Иннокентий Петрович', 'Александр Александрович', 'Игорь Олегович', 'Евгений Петрович', 'Игнат Денисович', 'Сергей Александрович', 'Семён Петрович']; var query = 'Александрович'; var matchingUsers = 0; Итак, решение: На самом деле, решение очень простое: for(var i = 0; i < usersData.length; i++) {
if(usersData[i].indexOf(query) >= 0) {
matchingUsers++;
}
} Что и куда, объясняю. Сперва задаем цикл (for) у которо

Всем привет! Сегодня у меня была на решение такая задача:

Напиши программу, которая будет собирать статистику из пользовательских данных.
Массив с данными записан в переменную usersData.
Найди все элементы массива с данными, в которых содержится определённая строка. Эта искомая строка записана в переменную query.
Количество подходящих элементов (пользователей), которые подходят под критерий, запиши в переменную matchingUsers.
Чтобы проверить наличие строки в элементе массива, используй команду indexOf().

И даны входные данные:

var usersData = ['Виталий Иванович', 'Иннокентий Петрович', 'Александр Александрович', 'Игорь Олегович', 'Евгений Петрович', 'Игнат Денисович', 'Сергей Александрович', 'Семён Петрович'];
var query = 'Александрович';
var matchingUsers = 0;

Итак, решение:

На самом деле, решение очень простое:

for(var i = 0; i < usersData.length; i++) {
if(usersData[i].indexOf(query) >= 0) {
matchingUsers++;
}
}

Что и куда, объясняю.

Сперва задаем цикл (for) у которого "i" будет отыгрывать роль индекса в основном массиве (usersData в условии). Так как счет в массиве начинается с 0, а не с 1, то i = 0;

Далее условие срабатывание цикла - если индекс меньше длины массива (i < usersData.length). В случае срабатывания, то на следующей итерации индекс увеличивается на единицу (i++).

Переходим к действиям внутри цикла:

Во первых, в условии предлагается использовать функцию indexOf() - Эта функция позволяет проверить наличие определенного значения в массиве данных и записывается "массив.indexOf()". Если значение есть - то отдает значение индекса этого элемента массива, а если нет такого значения в массиве, то отдаст значение "-1". Будем использовать.

Я ставлю условие (if), что если в элементе массива "i" (usersData[i]) присутствует значение (indexOf(query) >=0), то matchingUsers++ увеличивается на единицу.

Таким образом, цикл будет записывать +1 до тех пор, пока не кончатся элементы.

Может вы знаете, как решить по другому? Или есть что посоветовать ? Пишите комментарий!) А лайку дадут мне мотивацию. Спасибо. )