Вы можете сделать это с меньшим количеством ifs - может иметь значение, если у вас много городов.
var locations= [
['Baltimore','Maryland','MD'],
['Germantown','Maryland','MD'],
['Rockville','Maryland ','MD'],
['San Francisco','California','CA'],
['San Diego','California','CA']
];
locations.sort(function(a, b){
if(a[1]===b[1]){
if(a[0]===b[0]) return 0;
return a[0]>b[0]? 1:-1;
}
return a[1]>b[1]? 1:-1;
})
//alert(locations.join('\n'))
locations.join('\n')
/* returned value: (String)
San Diego,California,CA
San Francisco,California,CA
Baltimore,Maryland,MD
Germantown,Maryland,MD
Rockville,Maryland ,MD
*/