Есть ли способ определить или рассчитать, можно ли нормализовать HTML-таблицу, используя диапазоны строк, и если да, то каким образом? Или если есть библиотека JavaScript, которая может это сделать.
Например, эта таблица:
+-----------+---------+
| Apple | Red |
| Apple | Green |
| Apple | Yellow |
| Sun | Yellow |
| Sun | Hot |
| Charizard | Hot |
| Charizard | Pokémon |
+-----------+---------+
Преобразуется в это:
+-----------+---------+
| Apple | Red |
| | Green |
| |---------|
|-----------| Yellow |
| Sun |-------- |
|-----------| Hot |
| |---------|
| Charizard | Pokémon |
+-----------+---------+
Посмотрите на эту скрипку, чтобы понять, что я имею в виду: http://jsfiddle.net/scorch/LZKkQ/
Некоторые из эти комбинации легко вычислить вручную, но некоторые из них могут быть довольно сложными. Я хотел бы минимизировать таблицу, насколько это возможно, и быть уверенным, что нет другой комбинации, которая могла бы минимизировать ее еще больше. Т.е. желательно только уникальные значения в таблице.
РЕДАКТИРОВАТЬ : Не обращайте внимания на дополнительный столбец в скрипке. Кажется, у Firefox есть некоторые проблемы с rowspan в самом правом столбце, поэтому мне пришлось добавить еще один, чтобы он имел желаемый эффект.
РЕДАКТИРОВАТЬ 2:
Плагин DataTables fnMultiRowspan
и fnFakeRowspan
, упомянутый ниже, на самом деле не дает желаемых результатов.Оба плагина нуждаются в том, чтобы таблица была предварительно правильно отсортирована для работы; fnFakeRowspan
работает только с одним столбцом, а fnMultiRowspan
дает следующий результат (горячий и желтый дублируются во втором столбце):
+-----------+---------+
| | Red |
| Apple | Green |
| | Yellow |
|-----------+---------|
| Charizard | Hot |
| | Pokémon |
|-----------+---------|
| Sun | Yellow |
| | Hot |
+-----------+---------+