Анализ данных (методы массивов)
На аукционе
Имеется сгенерированный функцией generateData список больших данных на несколько сотен тысяч строк. Предполагаем, что мы - владельцы фермы, у которой малый ассортимент товаров, но очень много покупателей. В данных есть информация о продажах: кому, чего и сколько мы продали: company - какая компания у нас купила товар product - что купила count - количество единиц товара Также нам доступен PRODUCT_PRICES с ценами за одну единицу каждого товара. Отдел продаж компании хочет получить таблицу с данными о продажах и некоторые метрики по продуктам. Задача 1) Убрать "битые" данные. Данные валидны, если: Компания - не пустая строка Продукт - не пустая строка Количество - товара натуральное число 2) Построить таблицу. В ней для каждой компании единственная строка с столбцами - названием всех возможных продуктов и ячейками - общим количеством и общей ценой на которую у нас купил этот товар эта компания. Важно! подписи столбцов должны совпадать с названием товара в массиве. Поэтому их нельзя просто захардкодить. Надо прочитать как-то, эти ключи из данных. Будем полагать, что все возможные товары представлены объектом PRODUCT_PRICES (пока они называются Молоко, Мороженое, Сыр и Масло но это пока потом добавится Йогурт и еще что-то. При проверке работы добавятся еще несколько продуктов в PRODUCT_PRICES. Они также должны отобразиться в итоговой таблице.). 3)Посчитать и отобразить метрики и агрегации Помимо сухих данных, нам [нашей компании] могут понадобится дополнительные метрики, например: Какой максимум (минимум) единиц или итоговой цены товара мы продали компаниям Среднее от всех проданных единиц (или общей стоимости) товара Медиана от всех продаж товара Сумма всех продаж * Какой процент от всех продаж составляет конкретная компания Необходимо: Добавить в таблицу несколько столбцов для подсчета метрик по строкам. Добавить несколько строк в футер таблицы для подсчета агрегированных метрик по данным. Какие метрики вы будете отображать, предлагается выбрать самостоятельно из представленных выше. Лучше всего задать выбранный список метрик в константах, чтобы его можно было легко поменять. Рекомендация: Вам стоит написать в итоге 4 функции, каждая из которых по данным таблицы вычисляет некую метрику (агрегированное значение). В идеале эта ф-ция получает в качестве параметров таблицу и имя поля которому что-то там вычисляется сумма/среднее/количество/максимум/минимум 4) Добавить пагинацию. Когда строк много (вспоминайте крестики-нолики размером 5000x5000) браузеру может быть очень тяжело отобразить такое количество данных на одной странице. Поэтому таблица должна быть разбита на несколько страниц (пагинация). под таблицей или в футере таблицы есть : Кнопка "Предыдущая страница" Показатель сколько строк отображается в одной странице таблицы По умолчанию 10 Можно выбрать 10, 50 и 100 Кнопка "Следующая страница" 5) Дополнительно (не обязательно) Добавить возможность сортировки по столбцам (например, click на заголовке столбца приводит к сортировке) Убедитесь, что пользователь понимает, как именно сейчас сортированы данные. Добавить возможность фильтрации по названию компании
Похожие заказы
Ставок еще нет
Ставок еще нет