You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cytoscape.js中如何通过node.outgoers()仅获取目标节点?

问题解决方法

核心修复:过滤仅获取节点

Cytoscape.js的incomers()和outgoers()方法默认会返回关联的边和节点,你只需要在方法中传入'node'选择器,就能仅获取目标节点集合:

nodes.forEach((n)=>{
    var array = [];
    array.push(1.0);
    array.push(1.0);
    array.push(n.incomers('node')); // 仅获取父节点
    array.push(n.outgoers('node')); // 仅获取子节点
    map.set(n, array);
})

错误原因说明

你遇到的Uncaught TypeError: Cannot read properties of undefined (reading '0'),是因为之前的outgoers()返回了边对象。当updateHub遍历array[3]时,其中的边对象作为键去Map中查找,而你的Map仅以节点为键,所以map[c]会返回undefined,访问[0]自然报错。

验证updateHub逻辑

修正节点集合后,updateHub函数的逻辑就能正常运行,因为遍历的每个c都是节点对象,Map中存在对应的条目:

function updateHub(n, map, array){
    array[3].forEach((c) =>{
        array[1] += map[c][0];
    });
}

内容的提问来源于stack exchange,提问作者Palucca

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 06:35:03