JS中图添加节点功能异常,求修改方案实现目标图结构
修复图节点添加函数
原函数的问题
- 当添加不存在的节点(如5)时,
graph[key]为undefined,调用push会触发错误 - 错误地将邻接边数组包装成
{ value: value }对象,不符合目标结构的数组格式
修正后的代码
var graph = { 1: [2, 4], 2: [1, 3], 3: [2, 4], 4: [1, 4] }; function addNode(key, value = []) { // 直接为节点设置邻接边数组,新增或覆盖现有节点的邻接表 graph[key] = value; } addNode(5, [3, 4]); console.log(graph);
扩展:支持为已有节点追加邻接边
如果需要保留已有节点的邻接边,同时追加新边,可以修改函数:
function addNode(key, value = []) { // 节点不存在则初始化空数组 if (!graph[key]) { graph[key] = []; } // 展开传入的边数组,追加到邻接表中 graph[key].push(...value); }
内容的提问来源于stack exchange,提问作者Sougata Mukherjee
相关产品推荐
相关产品推荐

