#javascript #jquery #sorting
#javascript #jquery #сортировка
Вопрос:
У меня довольно сложная проблема сортировки таблицы цен, которая должна быть отсортирована по столбцам, а не по строкам.
Проблема в несортированной таблице:
<table>
<tbody>
<tr>
<td></td>
<td>Cheapest</td>
<td>Option 1</td>
<td>Option 2</td>
<td>Option 3</td>
<td>Option 4</td>
<td>Option 5</td>
</tr>
<tr>
<td>Price 1</td>
<td data-price="20.82">€ 20,82</td>
<td data-price="100.95">€ 100,95</td>
<td data-price="300.20">€ 300,20</td>
<td data-price="0"></td>
<td data-price="158.72">€ 158,72</td>
<td data-price="0"></td>
</tr>
<tr>
<td>Price 2</td>
<td data-price="55.66">€ 55,66</td>
<td data-price="100.95">€ 100,95</td>
<td data-price="0"></td>
<td data-price="128.72">€ 128,72</td>
<td data-price="158.72">€ 158,72</td>
<td data-price="105.22">€ 105,22</td>
</tr>
</tbody>
</table>
Что мне нужно выполнить:
- Таблица должна быть отсортирована слева направо (столбцы)
- Первые два столбца должны оставаться на своих позициях (не сортировать)
- Значение, подлежащее сортировке, находится в атрибуте data-price
- Пустое значение заменяется значением 0 и должно быть в конце
- Если имеется несколько пустых значений, они должны быть отсортированы по значению второй строки
Я создал скрипку, чтобы показать желаемый результат и объяснить немного больше
Я нашел достаточно решений для сортировки по строкам или td только по одной единственной строке. Я не могу понять эту сложную задачу.
Комментарии:
1. У вас более 1 строки, но сортировка столбца зависит только от
data-price
количества ячеек в одной строке, так что, похоже, мы можем отсортировать столбец на основе любой строки ? В противном случае сортировка может быть сложной, например, в первой строке у нас должен5,3,7,2
быть порядок2, 3, 5, 7
, но при таком отсортированном порядке вторая строка может иметь4,3,5,7
то, что вообще не находится в порядке возрастания (так и должно быть3, 4, 5, 7
). Похоже, ваши данные должны быть согласованными, чтобы избежать такого случая.2. Сортировка должна происходить только в первой строке с ценой данных. Однако в первых строках есть несколько пустых значений (0). Только пустые столбцы должны быть отсортированы по ВТОРОЙ строке. (См. JSFiddle)