Aktualisierung:
Wie @Ryan Leonard richtig bemerkte, behebt meine Antwort nicht wirklich den Punkt, den ich selbst gemacht habe... Sie müssen sowohl trimmen als auch doppelte Leerzeichen mit (zum Beispiel) string.replace(/ +/g, " "). entfernen. Oder Sie könnten den el.className aufteilen und dann leere Werte mit (zum Beispiel) arr.filter(Boolean) entfernen.
const classes = element.className.split(' ').filter(Boolean);
oder moderner
const classes = element.classList;
Alt:
Bei all den gegebenen Antworten sollten Sie nie vergessen, .trim() (oder $.trim()) zu verwenden.
Da Klassen hinzugefügt und entfernt werden, kann es vorkommen, dass zwischen den Klassenstrings mehrere Leerzeichen stehen, z. B. 'class1 class2 class3'.
Dies würde zu ['class1', 'class2','','','', 'class3']. führen.
Wenn Sie Trimmen verwenden, werden alle mehrere Leerzeichen werden entfernt..