javascript算法 最短路径问题
var obj = { 1: [2, 3], 2: [1, 4, 5], 3: [1, 7, 8], 4: [2, 7], 7: [4, 8], } var 起点 = 1 var 终点 = 8 var f = 起点 => 终点 => 数据 => 路径 => { if (起点 == 终点) return [路径] if (路径.length == Object.keys(数据).length + 1) return [[]] if (obj[起点] == null) return [[]] return obj[起点].filter(a => !路径.includes(a)).map(a => f(a)(终点)(数据)([...路径, a])).flat().filter(a => a.length != 0) } console.log( f(起点)(终点)(obj)([起点]) )
posted on 2020-05-17 14:17 fox_charon 阅读(776) 评论(0) 编辑 收藏 举报