2017-06-20 1 views
0

So habe ich dieses Array:Wie sortiere ich dieses Array in alphabetischer Reihenfolge in Javascript?

[[21, "Bowling Ball"], [2, "Dirty Sock"], [1, "Hair Pin"], [5, "Microphone"]], [3, "Half-Eaten Apple"],[7, "Toothpaste"]]; 

ich das Element dieses Array in alphabetischer Reihenfolge entsprechend dem zweiten Element sortieren möchten. Also wollte ich so bestellt werden:

[[21, "Bowling Ball"], [2, "Schmutzige Socke"], [1, "Haarnadel"], [3, "Halbgegessener Apfel"] ], [5, "Microphone"]], [7, "Toothpaste"]];

Was kann ich tun, um dies in Javascript zu erreichen?

+0

Was haben Sie versucht? – karthick

+0

Da @Nina darauf hinweist, müssen Sie entscheiden, nach welchem ​​Gebietsschema (Alphabet usw.) Sie sortieren möchten: der Browser, der Inhalt, der Server, die Site, der Hauptsitz der Website der Organisation, .... –

Antwort

4

Mit einem geeigneten Array und der Verwendung des zweiten Elements können Sie Array#sort mit einem Hinweis für Sorting non-ASCII characters für zum Vergleichen von Zeichenfolgen verwenden.

var array = [[21, "Bowling Ball"], [2, "Dirty Sock"], [1, "Hair Pin"], [5, "Microphone"], [3, "Half-Eaten Apple"], [7, "Toothpaste"]]; 
 

 
array.sort(function (a, b) { 
 
    return a[1].localeCompare(b[1]); 
 
}); 
 

 
console.log(array);

+0

Würden Sie Ihren Verweis auf [MDN] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort?v=control) aktualisieren? Es ist ein wenig zuverlässiger als W3S – Marie

+1

@Marie, gerade fertig. –

+0

Danke! Sie können auch den '# Sorting_non-ASCII_characters'-Hash am Ende des' Array # sort'-Links werfen, um ihn direkt zum localCompare-Beispiel zu bringen, wenn Sie – Marie

0
let stuff = [ 
    [21, "Bowling Ball"], 
    [2, "Dirty Sock"], 
    [1, "Hair Pin"], 
    [5, "Microphone"], 
    [3, "Half-Eaten Apple"], 
    [7, "Toothpaste"]]; 

Dies kann unter Verwendung der Methode String.prototype.localeCompare() durch Sortieren der Array-Elemente leicht bewerkstelligt werden die Elemente in alphabetischer Reihenfolge zu setzen.

stuff.sort((item1, item2) => item1[1].localeCompare(item2[1])); 
Verwandte Themen