In Ordnung, also habe ich ein Array von Objekten, die Nullwerte für eine bestimmte Eigenschaft enthält.Sortieren eines Arrays von Objekten nach mehreren Kriterien mit Nullwerten
Das Objekt sieht ungefähr so aus für Sortierzwecke ... (40 Elemente, aber das reicht ...).
braucht Es basiert auf roulette
absteigend sortiert werden (mit roulette
manchmal ist null), dann novelty
, dann popularity
.
Mein Kopf wird ein bisschen zerquetscht.
Das funktioniert, um die roulette
in absteigend zu sortieren, aber wie muss ich es erweitern, um die anderen zwei Kriterien aufzunehmen?
Objekt:
[
{
title: 'one',
popularity: 4,
novelty: 3
},
{
title: 'two',
popularity: 1
novelty: 4
},
{
title: 'three',
popularity: 5,
novelty: 3,
roulette: 0
},
{
title: 'four',
popularity: 5,
novelty: 3,
roulette: 1
}
]
Teilarbeitsfunktion:
object.sort(function(a, b) {
if (a['roulette'] == null) return 1
if (b['roulette'] == null) return -1
if (a['roulette'] === b['roulette']) return 0
return b.roulette > a.roulette ? 1 : -1
});
Bitte fügen Sie weitere Daten und das gewünschte Ergebnis hinzu. Es tut mir leid, ich kann nicht lesen, was Neuerung beim Sortieren bedeutet. –
@NinaScholz Neuheit ist ein Novum in seinem JSON. – Sikorski
ja, ich lese das, aber wo sollte 'null' gehen? –