我有以下实体:
形式
堵塞
排
细胞
场地
根元素是Form。
里面From是放置的Block。
Block包含一些Rows,每个都Row可以包含一些Cell内部具有不同内容的内容:Field或者Block,Block它又是嵌套结构Block -> Rows -> Cells -> Field/Block。
它是从根Form到终点的有向有限图Field或Block。
只有Block和Field实体具有getId()返回顶点 id 的方法。基于此,我构建了从 root 到具体 vertex 的路径(Blcok, Field)。
我试图检查具体的顶点实体(Block)是否按路径呈现在图形中,所以我的解决方案是:
从我们开始的地方设置当前顶点(块),设置顶点的收入路径
循环获取当前顶点的所有行(块)
然后在第一个循环中使用循环从每行中获取所有单元格
然后从每个单元格(字段,块)中获取内容
检查它是否是 Block 然后获取它id并与传入的路径(id)进行比较
如果不相等,则将找到的块设置为当前块(for循环)
继续,直到我找不到路径
代码是:
function getBlockFieldByPath(block: Block, path: string) {
let currentBlock = block;
let irows = 0;
let jcells = 0;
while(irows < currentblock.getRows().length) {
let cells = rows[irows].getCells();
while(jcells < cells.length) {
let content = cells[jcells].getContent(); // it is should be Block or Field,
if (content.getId() == path) {
return content;
}
if (content == Block) {
currentblock = content; // Because content is Block
}
jcells++;
}
irows++;
}
}
我的错误在哪里?
大话西游666
九州编程
随时随地看视频慕课网APP
相关分类