JS: Mehrdimensionales Array sortieren

Hallo zusammen.

Ich bastle nun schon seit einiger Zeit an einer Google-Maps Karte, die mit Daten aus einem CMS gefüttert wird. Dort soll man die Möglichkeit haben, nach Verkäufern in seiner Nähe zu suchen. Klappt soweit auch ganz gut.

Nun will ich die Ergebnisliste noch nach Entfernung vom Startpunkt der Suche aus sortieren. Und da hakts ein wenig.

Folgendes Array wird während der Suchabfrage generiert:

sellingPoints[0][„name“] = „Mustermann“;
[„anschrift“] = „Milchstr“;
[„distanz“] = x km;

sellingPoints[1][„name“] = „Musterfrau“;
[„anschrift“] = „Kaffeeweg“;
[„distanz“] = x km;
usw.

Dieses Array jage ich am Ende durch folgende Funktion:

sellingPoints.sort(
function (a, b){
return a[„distance“] > b[„distance“] ? 1 :
a[„distance“]

Klappt auf den ersten Blick auch wunderbar, bis auf die Tatsache, dass am Ende der Ausgabeliste dann ein Eintrag steht, der eigentlich an eine andere Podition gehört…

z.B.

  1. Mustermann AG … Distanz: 0.5 km
  2. Musterfrau AG … Distanz: 12.8 km
  3. Noch ne Firma … Distanz: 15.3 km

    X. IchDuWir GmbH … Distanz: 6.0 km

Hat jemand spontan eine Idee, woran das liegen könnte?
Bin für jeden Tip dankbar. Vielen Dank im Voraus.

Philip

Hallo Philip,

Hat jemand spontan eine Idee, woran das liegen könnte?

Welchen Typ haben die distanz-Werte? Für Strings würde gelten:

„0.5“

Ja, das isses. Danke für diesen Hinweis.
Über die distanceFrom Funktion aus der GoogleAPI wird die distanz in Meilen errechnet. Diese wird dann per

var kmdistance = (miledistance * 1.609344).toFixed(1);

in Kilometer umgewandelt.

Ich habe nun mein JS nochmal angepackt und speichere den Wert jetzt mit

Number(kmdistance) in das Array. Nun funktionierts.

Danke!