dedlfix: Key-Value-Pair mit höchster Value ernten

Beitrag lesen

Tach!

Leider wird mir nur ein leeres Objekt ausgespuckt... warum?

Mit Debugging könnte man der Ursache näher kommen. Der Block vom ersten if-Statement wird nicht ausgeführt. Objekte sind nie falsy, auch dann nicht wenn sie keine Eigenschaften haben.

Ich würde das nicht auf diese Weise lösen und aus der Funktion heraus auf Werte im äußere Scope zugreifen, solange das nicht unbedingt nötig ist. Und das ist es in dem Fall auch nicht.

Object.entries(Werte).reduce(function(a, b) {
	return a[1] > b[1] ? a : b;
}, []);

Das Ergebnis ist allerdings kein Objekt sondern ein Array mit Key und Value der gesuchten Eigenschaft als Elemente. Und man muss hier auch nicht auf das initiale Objekt (oder in meinem Code ein Array) testen. Zugriffe auf nicht vohandene Elemente ergeben undefined, und das ist weder größer noch kleiner oder gleich dem Wert von b, so dass beim ersten Durchlauf das b zurückgeliefert wird.

dedlfix.