Javascript array Sortieren nach mehreren Kriterien

Ich habe ein array von Objekten:

var arr = [
  {title:'50 - 50'},
  {title:'100 - 100'},
  {title:'50 - 65'},
  {title:'100 - 125'}
];

Versuche ich zu Sortieren das array so, dass die Elemente in der folgenden Reihenfolge angezeigt:

var arr = [
  {title:'50 - 50'},
  {title:'50 - 65'},
  {title:'100 - 100'},
  {title:'100 - 125'}
];

Derzeit bin ich mit folgenden Sortier-Funktion versucht:

arr.sort(function(a, b){
  var titleA = a.title;
  var titleB = b.title;
  var arrA = titleA.split(' - ');
  var arrB = titleB.split(' - ');
  var keyA = parseInt(arrA[0]), 
      keyB = parseInt(arrB[0]);

  //Compare the 2 keys
  if(keyA < keyB) return -1;
  if(keyA > keyB) return 1;
  return 0;
});

Jedoch, diese gibt die Elemente in der folgenden Reihenfolge:

var arr = [
  {title:'50 - 65'},
  {title:'50 - 50'},
  {title:'100 - 125'},
  {title:'100 - 100'}
];

Es sieht aus wie ich brauche, um zu Sortieren, indem die erste Zahl in den Titel und dann die zweite Zahl. Irgendwelche Ideen?

verwenden Sie das Codebeispiel statt code-snippet, wenn Sie gemeinsam den code. verwenden Sie code-snippet, wenn Sie es läuft.
Sie Sortieren auf der ersten Reihe nur. Fügen Sie ein weiteres Kriterium für die zweite Nummer, wenn keyA == keyB.

InformationsquelleAutor user2866434 | 2015-02-17

Schreibe einen Kommentar