Javascript 如何根据边的数组对象内的数据选择边?
我正在尝试根据传入的字符串选择边。下面是一个json示例:Javascript 如何根据边的数组对象内的数据选择边?,javascript,json,cytoscape.js,cytoscape-web,Javascript,Json,Cytoscape.js,Cytoscape Web,我正在尝试根据传入的字符串选择边。下面是一个json示例: { "group": "edges", "data": { "id": "8", "source": "Q14814", "target": "P20393", "direction": "|->", "Sources": { "dataSource": "database", "dbId": "0", "sourceId": "1368140", "sourceType": "
{
"group": "edges",
"data": {
"id": "8",
"source": "Q14814",
"target": "P20393",
"direction": "|->",
"Sources": {
"dataSource": "database",
"dbId": "0",
"sourceId": "1368140",
"sourceType": "REACTION"
}
}
}
每条边可以有一个源,也可以有一组源。我想选择所有具有传入字符串sourceId的边。因此,如果我传入一个字符串“1368140”,我希望得到包含sourceId为“1368140”的源的所有边
我尝试了几种不同的选择方法,包括:
cy.filter('edge[reactomeId = "' + string + '"]'));
或
或
似乎所有其他的排列都是这样的。有人知道如何正确选择这些边吗?这是我的方法:
// The syntax is important here!
cy.edges('[source = "' + string + '"]');
可以找到这种特殊语法的来源
实时示例(控制台中的输出):
var cy=(window.cy=cytoscape({
容器:document.getElementById(“cy”),
boxSelectionEnabled:false,
自动取消选择:true,
风格:[{
选择器:“节点”,
css:{
内容:“数据(id)”,
“文本有效”:“中心”,
“文本halign”:“中心”,
高度:“60px”,
宽度:“100px”,
形状:“矩形”,
“背景色”:“数据(faveColor)”
}
},
{
选择器:“边缘”,
css:{
“曲线样式”:“贝塞尔”,
“控制点步长”:40,
“目标箭头形状”:“三角形”
}
}
],
要素:{
节点:[{
数据:{
id:“顶部”,
faveColor:#2763c4“
}
},
{
数据:{
id:“是”,
faveColor:#37a32d”
}
},
{
数据:{
id:“否”,
faveColor:#2763c4“
}
},
{
数据:{
id:“第三”,
faveColor:#2763c4“
}
},
{
数据:{
id:“第四”,
faveColor:#56a9f7”
}
}
],
边缘:[{
数据:{
资料来源:“顶部”,
目标:“是”
}
},
{
数据:{
资料来源:“顶部”,
目标:“不”
}
},
{
数据:{
资料来源:“否”,
目标:“第三”
}
},
{
数据:{
资料来源:“第三”,
目标:“第四”
}
},
{
数据:{
资料来源:“第四”,
目标:“第三”
}
}
]
},
布局:{
姓名:“达格雷”
}
}));
cy.bind('click','node',函数(事件){
console.log(cy.edges('[source=“'+event.target.id()+'“]');
});代码>
正文{
字体:14px helvetica neue,helvetica,arial,无衬线;
}
#赛义德{
身高:85%;
宽度:100%;
浮动:对;
位置:绝对位置;
}
这是我的方法:
// The syntax is important here!
cy.edges('[source = "' + string + '"]');
可以找到这种特殊语法的来源
实时示例(控制台中的输出):
var cy=(window.cy=cytoscape({
容器:document.getElementById(“cy”),
boxSelectionEnabled:false,
自动取消选择:true,
风格:[{
选择器:“节点”,
css:{
内容:“数据(id)”,
“文本有效”:“中心”,
“文本halign”:“中心”,
高度:“60px”,
宽度:“100px”,
形状:“矩形”,
“背景色”:“数据(faveColor)”
}
},
{
选择器:“边缘”,
css:{
“曲线样式”:“贝塞尔”,
“控制点步长”:40,
“目标箭头形状”:“三角形”
}
}
],
要素:{
节点:[{
数据:{
id:“顶部”,
faveColor:#2763c4“
}
},
{
数据:{
id:“是”,
faveColor:#37a32d”
}
},
{
数据:{
id:“否”,
faveColor:#2763c4“
}
},
{
数据:{
id:“第三”,
faveColor:#2763c4“
}
},
{
数据:{
id:“第四”,
faveColor:#56a9f7”
}
}
],
边缘:[{
数据:{
资料来源:“顶部”,
目标:“是”
}
},
{
数据:{
资料来源:“顶部”,
目标:“不”
}
},
{
数据:{
资料来源:“否”,
目标:“第三”
}
},
{
数据:{
资料来源:“第三”,
目标:“第四”
}
},
{
数据:{
资料来源:“第四”,
目标:“第三”
}
}
]
},
布局:{
姓名:“达格雷”
}
}));
cy.bind('click','node',函数(事件){
console.log(cy.edges('[source=“'+event.target.id()+'“]');
});代码>
正文{
字体:14px helvetica neue,helvetica,arial,无衬线;
}
#赛义德{
身高:85%;
宽度:100%;
浮动:对;
位置:绝对位置;
}
String模板可能有用:js-cy.$(`[foo=“${bar}]”)
String模板可能有用:js-cy.$(`[foo=“${bar}]”)`)
// The syntax is important here!
cy.edges('[source = "' + string + '"]');