1Sergey1
@1Sergey1

Как правильно группировать массив из csv?

Добрый вечер, подскажите пожалуйста как грамотно формировать массивы и сортировать их по разным параметрам.
Есть отзывы которые я должен сортировать по:
1) номеру телефона (Повторяется, т.к. много людей может оставить отзывы о владельце этого номера)
2) виду транспорта
3) кол-ву звёзд (рейтинга) 
4) общему кол-ву отзывов для этого номера телефона

https://jsfiddle.net/51tL8wbu/
в csvесть параметры не учавствующие в сортировке (их не указывал)
"+7 (000) 000-00-00"; // номер телефона
Водовоз; //вид транспорта
5; // кол-во звезд рейтинга

В JS получаю массив массивов (строк из csv)
Пример одной строки
0: "\"+7 (000) 000-00-00\";Водовоз;5;"

P.S. сейчас я только смог вывести всё что есть в файле на страницу, не понимаю как сортировать и можно ли как-то выводить не все отзывы сразу, а опред. кол-во. И важный косяк у меня, если телефон повторяется я его вывожу на страницу, а нужно что-бы каждый номер выводился только 1 раз, а общее кол-во отзывов для него указывалось при вовде на стр (пример в jsfiddle)
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
@furashcka
создаем объект, например $reviewsGroupedNumbers и прогоняем масcив из .csv используя в качестве ключа для объекта номер, пример:
[+7 (111) 111-11-11, +7 (111) 111-11-11, +7 (111) 111-11-11].forEach(function( item ) {
    if( !$reviewsGroupedNumbers[ item ] ) {
        $reviewsGroupedNumbers[ item ] = [];
    }

    $reviewsGroupedNumbers[ item ].push({
        countNumber: '...',
        technicType: '...',
        rating: '...'
    });
});


потом чтобы получить количество отзывов по номеру, достаточно вызвать так:
$reviewsGroupedNumbers[ '+7 (111) 111-11-11' ].length;


а для фильтрация стандартные функции es2015 или библиотеку lodash или underscore
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
NetLab Москва
от 35 000 до 50 000 руб.
Римэкс Екатеринбург
от 70 000 руб.
NewTech Екатеринбург
от 70 000 до 120 000 руб.
09 дек. 2019, в 08:24
3000 руб./за проект
09 дек. 2019, в 06:17
240000 руб./за проект
09 дек. 2019, в 01:07
1000 руб./за проект