Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Как двухмерный массив преобразовать в html table?

Икар Кабачков Просветленный (24266), открыт 2 недели назад
 let a=[[1,2],
[1,3]];
Вот такая матрица превращается в наподобие такого
 <table>
<tr><td></td><td></td></tr>
<tr><td></td><td></td></tr>
</table>
Дополнен 2 недели назад
Возможно получилось
const tbl=a=>{
let s='';
for (let i=0; i<a.length; i++){
s+='<tr>';
for (let j=0; j<a[0].length; j++){
let v=a[i][j];// жертвацвет
if(!v)continue;
let ii=i, jj=j, jjj;
while ((ii<a.length)&&(a[ii][jj]==v)){
while ((jj<a[0].length)&&(a[ii][jj]==v)){
a[ii][jj]=0;
jj++
}
ii++;
jjj=jj;
jj=j;
}
s+='<td'+
(' rowspan="'+(ii-i)+'" colspan="'+(jjj-j)+'"')
.replace(' rowspan="1"','')
.replace(' colspan="1"','')+'></td>';
}
s+='</tr>\r\n';
}
return '<table>\r\n'+s+'</table>';
}
2 ответа
)|(èJŁÊŹŅbĺî πpéĐVõĎI/IŤĘĽ 《ĒĹ BŔŪ§》 Искусственный Интеллект (147970) 2 недели назад
Числа между td вставить. Только зачем?) Будет просто таблица
Икар КабачковПросветленный (24266) 2 недели назад
Не, матрица описывает ячейки таблицы, а не их содержимое.
Dlazder Мудрец (16889) 2 недели назад
А о чем говорят эти циферки в массивах? Цифры разные, а таблица одинаковая
Икар КабачковПросветленный (24266) 2 недели назад
А как обозначить что началась другая ячейка.
Dlazder Мудрец (16889) Икар Кабачков, в твоем примере двумерный массив не нужен. Равзе недостаточно обычного массива с числами, где каждый элемент это новая строка, а число указывает на количество ячеек?
Икар КабачковПросветленный (24266) 2 недели назад
Что-то я не понимаю такую схему. Пока буду делать двумерку, потом может до одномерки дозрею.
Dlazder Мудрец (16889) Икар Кабачков, Вот так тебе может быть понятнее будет
 let a = [1, 2, 3]; 
 <table> 
<tr><td></td></tr> 
<tr><td></td><td></td></tr>
<tr><td></td><td></td><td></td></tr> 
</table> 
Икар КабачковПросветленный (24266) 2 недели назад
Тогда проблема будет расставить colspan, rowspan.
Икар КабачковПросветленный (24266) 2 недели назад
Да, получилось. Уже даже встроил в свой графический редактор. Тестирование идет полным ходом :-)
Похожие вопросы