Познакомиться с методами обработки данных в JavaScript, реализовать функции для анализа транзакций, таких как вычисление общей суммы, фильтрация по типам и диапазонам дат, и другие.
-
Создание массива объектов:
- Создал массив
transactions, состоящий из объектов транзакций. Каждый объект включает в себя следующие поля:transaction_id: уникальный идентификатор транзакции.transaction_date: дата транзакции.transaction_amount: сумма транзакции.transaction_type: тип транзакции (приход или расход).transaction_description: описание транзакции.merchant_name: название магазина или сервиса.card_type: тип карты (кредитная или дебетовая).
- Для тестирования использовал примеры транзакций, например: покупка в магазине, возврат товара, ужин с друзьями.
- Создал массив
-
Подготовка среды:
- Установил редактор кода VS Code.
- Создал файл
main.jsдля размещения кода JavaScript. - Ввел массив транзакций, готовый к дальнейшему анализу.
-
Получение уникальных типов транзакций:
- Реализовал функцию
getUniqueTransactionTypes, которая используетSetдля возвращения массива уникальных типов транзакций.
- Реализовал функцию
-
Вычисление общей суммы всех транзакций:
- Реализовал функцию
calculateTotalAmount, которая суммирует все значения транзакций с использованием методаreduce.
- Реализовал функцию
-
Вычисление общей суммы транзакций за определенный день, месяц и год:
- Реализована функция
calculateTotalAmountByDate, которая позволяет подсчитать сумму транзакций по указанной дате.
- Реализована функция
-
Фильтрация транзакций по типу (debit или credit):
- Написал функцию
getTransactionByType, которая фильтрует транзакции по заданному типу.
- Написал функцию
-
Фильтрация транзакций по диапазону дат:
- Создал функцию
getTransactionsInDateRange, которая возвращает транзакции, проведенные в указанном диапазоне дат.
- Создал функцию
-
Получение транзакций по merchant_name:
- Реализована функция
getTransactionsByMerchant, которая возвращает транзакции для указанного продавца или сервиса.
- Реализована функция
-
Вычисление среднего значения транзакций:
- Написал функцию
calculateAverageTransactionAmount, которая вычисляет среднее значение всех транзакций.
- Написал функцию
-
Получение транзакций по диапазону суммы:
- Реализована функция
getTransactionsByAmountRange, которая фильтрует транзакции по заданному диапазону сумм.
- Реализована функция
-
Вычисление общей суммы дебетовых транзакций:
- Создана функция
calculateTotalDebitAmount, которая подсчитывает общую сумму только дебетовых транзакций.
- Создана функция
-
Определение месяца с наибольшим количеством транзакций:
- Написана функция
findMostTransactionsMonth, которая находит месяц с наибольшим количеством транзакций.
- Написана функция
-
Определение месяца с наибольшим количеством дебетовых транзакций:
- Реализована функция
findMostDebitTransactionMonth, которая находит месяц с наибольшим количеством дебетовых транзакций.
- Реализована функция
-
Определение наиболее частого типа транзакций:
- Функция
mostTransactionTypesвозвращает наиболее частый тип транзакций (debit или credit).
- Функция
-
Получение транзакций до указанной даты:
- Написана функция
getTransactionsBeforeDate, которая фильтрует транзакции до определенной даты.
- Написана функция
-
Поиск транзакции по уникальному идентификатору:
- Создана функция
findTransactionById, которая позволяет найти транзакцию по её уникальному идентификатору.
- Создана функция
-
Возвращение только описаний транзакций:
- Реализована функция
mapTransactionDescriptions, которая возвращает массив с описаниями транзакций.
- Реализована функция
- Для тестирования каждой из функций я использовал массив с несколькими транзакциями. Примерный вывод в консоль для проверки:
- Уникальные типы транзакций.
- Общая сумма всех транзакций.
- Сумма транзакций по дате.
- Транзакции определенного типа и по диапазону дат.
- Среднее значение транзакций и фильтрация по сумме.
- Все функции проверены на разных наборах данных:
- Пустой массив транзакций.
- Массив с одной транзакцией.
В ходе работы я научился:
- Создавать и обрабатывать массивы объектов в JavaScript.
- Реализовывать различные методы для анализа и фильтрации данных.
- Практиковаться в работе с функциями и операциями над массивами.