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>");
}