获得两点之间的最短路径

Kic*_*ano 0 javascript algorithm backtracking shortest-path

我有以下数组:

steps=[
    {from:1, to:8},
    {from:1, to:2},
    {from:2, to:7},
    {from:7, to:9},
    {from:8, to:9}
];
Run Code Online (Sandbox Code Playgroud)

这个数组描述了两点之间的连接.例如,从1到7,有一种方式1-> 2-> 7.

在JavaScript中如何生成例如从1到9的最短路径?

更新

function calc_route(start, end, data)
    {           
        console.log(start+", "+end);
        console.log(data);              
        for(var i=0; i<data.length; i++)
        {

            if(data[i].topoint == end && data[i].frompoint == start)
            {
                console.log("Return");                  
                console.log(data[i]);
                return data[i];
            }
            else
            {
                if(data[i].frompoint == start)
                {                       
                    calcfor =   data.splice(i, 1);                                      
                    calc_route(calcfor[0].topoint, end, data);
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所做的,我的问题是如何保存路径?

Ted*_*opp 7

找到成本最低路径的标准方法是A*算法(可以使用启发式知识)或Dijkstra算法(不能).这两个链接都有伪代码,可以很容易地转换为Javascript.