Javascript 如何根据边的数组对象内的数据选择边?

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": "

我正在尝试根据传入的字符串选择边。下面是一个json示例:

{
"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 + '"]');