Подскажите пожалуйста как грамотно формировать массивы и сортировать их по разным параметрам. Есть отзывы которые я должен сортировать по:
1) номеру телефона (Повторяется, т.к. много людей может оставить отзывы о владельце этого номера)
2) виду транспорта
3) кол-ву звёзд (рейтинга)
4) общему кол-ву отзывов для этого номера телефона
в csv
есть параметры не учавствующие в сортировке (их не указывал)
"+7 (000) 000-00-00"; // номер телефона
Водовоз; //вид транспорта
5; // кол-во звезд рейтинга
В JS получаю массив массивов (строк из csv) Пример одной строки
0: "\"+7 (000) 000-00-00\";Водовоз;5;"
P.S. сейчас я только смог вывести всё что есть в файле на страницу, не понимаю как сортировать и можно ли как-то выводить не все отзывы сразу, а опред. кол-во. И важный косяк у меня, если телефон повторяется я его вывожу на страницу, а нужно что-бы каждый номер выводился только 1 раз, а общее кол-во отзывов для него указывалось при вовде на стр
// шаблон строки отзыва
let tableLine = `<div class="line">
<div class="td">{{ countNumber }}</div>
<div class="td">{{ phoneNumber }}</div>
<div class="td">{{ technicType }}</div>
<div class="td">
{{ rating }}
</div>
<div class="td">{{ reviewsCount }} <span class="tahoma">прочитать</span></div>
</div>`;
const reviews = [
[
"\"+7 (000) 000-00-00\";Водовоз;5;Снежанна Ноготок;rev1.jpg;ВКОНТАКТЕ;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;"
],
[
"\"+7 (111) 111-11-11\";Самосвал;4;Снежанна Ноготок 1;rev1.jpg;FACEBOOK;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;A2"
],
[
"\"+7 (222) 222-22-22\";Самосвал;4.5;Снежанна Ноготок 2;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;A2"
],
[
"\"+7 (333) 333-33-33\";Самосвал;5;Снежанна Ноготок 3;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;A2"
],
[
"\"+7 (444) 444-44-44\";Самосвал;5;Снежанна Ноготок 4;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;A2"
],
[
"\"+7 (555) 555-55-55\";Самосвал;5;Снежанна Ноготок 5;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;A2"
],
[
"\"+7 (666) 666-66-66\";Самосвал;5;Снежанна Ноготок;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;"
],
[
"\"+7 (777) 777-77-77\";Самосвал;5;Снежанна Ноготок;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;"
],
[
"\"+7 (222) 222-22-22\";Самосвал;5;Снежанна Ноготок 11;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;A2"
],
[
"\"+7 (444) 444-44-44\";Самосвал;5;Снежанна Ноготок 45;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;A2"
],
[
"\"+7 (777) 777-77-77\";Самосвал;5;Снежанна Ноготок 77;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;A2"
],
[
"\"+7 (000) 000-00-00\";Самосвал;5;Снежанна Ноготок;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;"
],
[
"\"+7 (000) 000-00-00\";Самосвал;5;Снежанна Ноготок;rev1.jpg;INSTAGRAM;https://instagram.com/;Спасибо вам за работу;Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget;"
]
]
// Первый вывод отзывов
/*
[0] - Номер телефона
[1] - Техника
[2] - Оценка
[3] - Имя оставившего отзыв
[4] - Ссылка на аватар
[5] - Соц сеть
[6] - Ссылка на профиль
[7] - Заголовок отзыва
[8] - Текст отзыва
*/
// Рендер таблицы рейтинга
function renderTable() {
let line = '';
let tableOutput = $('#table_content');
let counter = 0; // счётчик общего кол-ва отзывов
for (let key in reviews) {
let item = reviews[key][0].split(';'); // разбиваем строку на массив по разделителю
let phone = item[0].replace(/"/g, ''); // убираем кавычки из номера телефона
let rating = item[2];
++counter;
line += tableLine
.replace("{{ countNumber }}", counter)
.replace("{{ phoneNumber }}", phone)
.replace("{{ technicType }}", item[1])
.replace("{{ rating }}", item[2])
.replace("{{ reviewsCount }}", '{тут нужно кол-во отзывов для этого номера}');
// Сбор блоков перед выводом
$('.hid_table').html(line);
}
// Вывод блоков
$('.output').html($('.hid_table').html());
$('.hid_table').html('');
}
renderTable()
.line {
display: flex;
}
.td {
padding: 10px;
}
.line:nth-child(even) {
background: #ddd;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="hid_table" style="display: none;"></div>
<div class="output"></div>
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Не декомпресит данныеПри чтении из GzipStream количество считанных байтов = 0
По заданию, мне нужно ввести в консоль приложение, после чего найти количество слов в тексте, самое длинное слово в тексте, вывести его длину...