JSFiddle - React, Tailwind, and code Playground
by itspers
HTML
<link rel="stylesheet" href="http://twitter.github.io/bootstrap/assets/css/bootstrap.css">
<div class="well" id="results"></div>
JavaScript
var Carts = [
{locA: "Москва", locB: "Париж"},
{locA: "Париж", locB: "Зимбабве"},
{locA: "Лас Вегас", locB: "Москва"},
{locA: "Доло", locB: "Красный Луч"},
{locA: "Зимбабве", locB: "Dkjjjsdf"},
{locA: "Красный Луч", locB: "Нью - Йорк"},
{locA: "Нью - Йорк", locB: "Лас Вегас"},
];
//FIND NEXT ELEMENT
function find_next(end_value) {
for (i in Carts) {
if (Carts[i].locA == end_value) return Carts[i];
}
return false;
}
//RETURN SORTED ARRAY
function do_sort(){
//if one
if (Carts.length == 1 ) return Carts;
for (currentStart in Carts) {
var tmp = [];
tmp[0] = Carts[currentStart];
var i = 0;
var next;
while(next = find_next(tmp[i].locB)) {
i++;
tmp[i] = next;
}
if (tmp.length == Carts.length) return tmp;
}
//if nothing found
return [];
}
Carts = do_sort();
for (i in Carts) {
$('#results').append('<h4>' + Carts[i].locA + " <i class='icon-chevron-right'></i> " + Carts[i].locB + "</h4>");
}