Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 删除DFS算法cytoscape JS中发现的边缘_Javascript_Graph_Tree_Cytoscape.js - Fatal编程技术网

Javascript 删除DFS算法cytoscape JS中发现的边缘

Javascript 删除DFS算法cytoscape JS中发现的边缘,javascript,graph,tree,cytoscape.js,Javascript,Graph,Tree,Cytoscape.js,今天我从cytoscape开始,尝试在准备好的图上进行DFS搜索。我想去除算法将要去思考的每一条边 var dfs = cy.elements().dfs('#0', function(v, e, u, i, depth){}, false); var highlightNextEle = function(){ if( i < dfs.path.length ){ dfs.path[i+1].remove(); i++; setTi

今天我从cytoscape开始,尝试在准备好的图上进行DFS搜索。我想去除算法将要去思考的每一条边

var dfs = cy.elements().dfs('#0', function(v, e, u, i, depth){}, false);
var highlightNextEle = function(){
    if( i < dfs.path.length ){
        dfs.path[i+1].remove();
        i++;
        setTimeout(highlightNextEle, 1000);
    }
};
highlightNextEle();
var dfs=cy.elements().dfs('#0',函数(v,e,u,i,depth){},false);
var highlightNextEle=函数(){
if(i
我尝试了这段代码,他删除了第一条边,但随后他删除了与启动节点连接的所有内容。
有关任何提示,请提前感谢

如果要删除dfs中的边,可以使用dfs中的处理程序函数,如下所示:

var cy=window.cy=cytoscape({
容器:document.getElementById('cy'),
boxSelectionEnabled:false,
自动取消选择:true,
风格:[{
选择器:'节点',
css:{
“内容”:“数据(id)”,
“text valign”:“center”,
“text halign”:“center”,
“高度”:“60px”,
“宽度”:“60px”,
“边框颜色”:“黑色”,
“边框不透明度”:“1”,
“边框宽度”:“10px”
}
},
{
选择器:'$node>node',
css:{
“填充顶部”:“10px”,
“左填充”:“10px”,
“填充底部”:“10px”,
“右边填充”:“10px”,
“text valign”:“top”,
“text halign”:“center”,
“背景色”:“bbb”
}
},
{
选择器:'边',
css:{
“目标箭头形状”:“三角形”
}
},
{
选择器:':已选定',
css:{
“背景色”:“黑色”,
“线条颜色”:“黑色”,
“目标箭头颜色”:“黑色”,
“源箭头颜色”:“黑色”
}
}
],
要素:{
节点:[{
数据:{
id:'n0'
}
},
{
数据:{
id:'n1'
}
},
{
数据:{
id:'n2'
}
},
{
数据:{
id:'n3'
}
},
{
数据:{
id:'n4'
}
},
{
数据:{
id:'n5'
}
},
{
数据:{
id:'n6'
}
},
{
数据:{
id:'n7'
}
},
{
数据:{
id:'n8'
}
},
{
数据:{
id:'n9'
}
},
{
数据:{
id:'n10'
}
},
{
数据:{
id:'n11'
}
},
{
数据:{
id:'n12'
}
},
{
数据:{
id:'n13'
}
},
{
数据:{
id:'n14'
}
},
{
数据:{
id:'n15'
}
},
{
数据:{
id:'n16'
}
}
],
边缘:[{
数据:{
资料来源:“n0”,
目标:“n1”
}
},
{
数据:{
来源:“n1”,
目标:“n2”
}
},
{
数据:{
来源:“n1”,
目标:“n3”
}
},
{
数据:{
资料来源:“n2”,
目标:“n7”
}
},
{
数据:{
资料来源:“n2”,
目标:“n11”
}
},
{
数据:{
资料来源:“n2”,
目标:“n16”
}
},
{
数据:{
资料来源:“n3”,
目标:“n4”
}
},
{
数据:{
资料来源:“n3”,
目标:“n16”
}
},
{
数据:{
资料来源:“n4”,
目标:“n5”
}
},
{
数据:{
资料来源:“n4”,
目标:“n6”
}
},
{
数据:{
资料来源:“n6”,
目标:“n8”
}
},
{
数据:{
资料来源:“n8”,
目标:“n9”
}
},
{
数据:{
资料来源:“n8”,
目标:“n10”
}
},
{
数据:{
资料来源:“n11”,
目标:“n12”
}
},
{
数据:{
资料来源:“n12”,
目标:“n13”
}
},
{
数据:{
资料来源:“n13”,
目标:“n14”
}
},
{
数据:{
资料来源:“n13”,
目标:“n15”
}
},
]
},
布局:{
名称:“dagre”,
填充:5
}
});
cy.unbind('click');
cy.bind('click','node',函数(evt){
var edges=cy.collection();
var dfs=cy.elements().dfs({
根:`#${evt.target.id()}`,
访问:功能(v、e、u、i、深度){
console.log('visit'+v.id());
如果(e)边=边,则添加(e);
},
导演:错
});
控制台日志(dfs);
清除(边缘);
});
正文{
字体:14px helvetica neue,helvetica,arial,无衬线;
}
#赛义德{
身高:100%;
宽度:100%;
左:0;
排名:0;
浮动:左;
位置:绝对位置;
}


是否可以删除DFS搜索后在图中留下的最后一条立边,但不能手动删除DFS中的立边?是的,但为什么需要该功能?dfs是一种遍历算法,如果要删除所有边,只需调用cy.remove(cy.edges())。如果您确实需要在dfs中执行此操作,我可以编辑答案,但请首先解释为什么要执行此操作:)