ich einen Konstruktor für eine Klasse ES2015 mich schreibe, die entweder ein Map oder ein einfaches altes JavaScript-Objekt akzeptiert. Wenn das Eingabeargument eine Karte ist, speichert der Konstruktor wird es einfach, aber wenn es ein JS-Objekt ist, sollte es zu einer Map umwandeln, über, sagen wir, new Map(Object.keys(obj).map(k => [k, obj[k]]))
.fest, ob Variable ES2015-Karte oder ein einfaches altes JavaScript-Objekt ist
Meine Frage ist: Wie kann ich sicher sagen, ob ein Eingabeargument eine Karte oder Objekt? Ich kann auf einige Map-spezifische Methoden testen, aber gibt es einen zuverlässigeren und lesbareren Weg? Soweit ich das beurteilen kann, gibt es kein Map-Äquivalent von Array.isArray
.
'Object.entries' ist nicht ES6. – Bergi