Witam. Posiadam obiekt w którym znajduje się około 2400 elementów. Każdy element jest kolejnym obiektem zawierające dwie dane nazwe oraz tablice. Tablica jest to znowu lista sąsiadów. Szukam sposobu jak wykorzystując tablice sąsiadów znaleźć najkrótszą trase miedzy dwoma elementami (na zasadzie mapy). Przykłąd elementów :
{
"1": {
"name": "a",
"teleports": ["138", "34", "2720", "13", "191", "17", "2712", "26", "7", "610", "2713", "8", "3130", "2665", "297", "967", "5", "2517", "2711", "18", "333", "15", "2663", "11"]
},
"2": {
"name": "b",
"teleports": ["2029", "66", "73", "69", "2002", "68", "3986", "2217", "2213", "70", "2199", "12", "1111", "76", "71", "78", "82", "80", "354", "2197", "2206", "1108"]
},
"3": {
"name": "v",
"teleports": ["11", "4", "19", "12", "634", "5735", "5733", "633", "631"]
},
"4": {
"name": "d",
"teleports": ["110", "3", "2524"]
},
"5": {
"name": "e",
"teleports": ["6", "1"]
},
"6": {
"name": "g",
"teleports": ["5", "380", "375", "369", "379", "374", "370", "378", "373", "371", "377", "372", "376"]
}
}
To jest przykłąd kilu elementów, obecnie w spisie znajduje się około 2400. Jako klucz jest użyte ID danego elementu, w tablicy teleports sa ID sąsiednich elementów. Pomysłem jest funckcja pobierajaca dwa argumenty, Poczatek i Koniec. Pobieram teleports z Koniec, sprawdzam czy jest Poczatek, jak nie to pobieram każdy obiekt z teleports i ponawiam sprawdzenie, az do skutku (na zasadzie rekurencji), ale tego jest zbyt sporo. Nie mam pomysłu już. Ps. taki obiekt mogę łatwo zamienić na tablice z elementami ID|Name|teleports może ułatwiłoby przeszukiwanie dzięki wbudowanymi funkcjami w Array z JS.