Ein Ansatz, der es vermeidet, über ein Array zu iterieren, wäre folgender:
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
Durchgang
Die Aufteilung einer Zeichenkette nach Token erzeugt entweder ein Array mit einer Zeichenkette (gleicher Wert), falls Token nicht in einer Zeichenkette vorkommt, oder ein Array mit zwei Zeichenketten, falls Token in einer Zeichenkette vorkommt.
Das erste (linke) Element ist die Zeichenkette vor dem Token, das zweite (rechte) ist die Zeichenkette nach dem Token.
(HINWEIS: wenn die Zeichenkette mit einem Token beginnt, ist das erste Element eine leere Zeichenkette)
In Anbetracht der Tatsache, dass Cookies wie folgt gespeichert werden:
"{name}={value}; {name}={value}; ..."
Um einen bestimmten Cookie-Wert abzurufen, müssen wir nur die Zeichenfolge nach "; {Name}=" und vor dem nächsten ";" abrufen. Vor der Verarbeitung wird der Cookie-Zeichenkette ein ";" vorangestellt, so dass jeder Cookie-Name, auch der erste, mit ";" und "=" eingeschlossen ist:
"; {name}={value}; {name}={value}; ..."
Nun können wir zunächst durch "; {Name}=" teilen, und wenn das Token in einer Cookie-Zeichenkette gefunden wird (d. h. wir haben zwei Elemente), ist das zweite Element eine Zeichenkette, die mit unserem Cookie-Wert beginnt. Dann ziehen wir diese Zeichenkette aus einem Array heraus (d.h. pop) und wiederholen den gleichen Prozess, aber jetzt mit ";" als Token, aber dieses Mal ziehen wir die linke Zeichenkette heraus (d.h. shift), um den tatsächlichen Token-Wert zu erhalten.