Ein Ansatz, der das Iterieren über ein Array vermeidet, wäre:
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
Exemplarische Vorgehensweise
Wenn Sie eine Zeichenfolge nach Token aufteilen, wird entweder ein Array mit einer Zeichenfolge (gleicher Wert) erstellt, falls in einer Zeichenfolge kein Token vorhanden ist, oder ein Array mit zwei Zeichenfolgen, falls Token in einer Zeichenfolge gefunden wird.
Das erste (linke) Element ist eine Zeichenfolge dessen, was vor dem Token war, und das zweite (rechts) ist eine Zeichenfolge dessen, was nach dem Token war.
(HINWEIS: Wenn die Zeichenfolge mit einem Token beginnt, ist das erste Element eine leere Zeichenfolge.)
In Anbetracht dessen, dass Cookies wie folgt gespeichert werden:
"{name}={value}; {name}={value}; ..."
Um einen bestimmten Cookie-Wert abzurufen, müssen wir nur eine Zeichenfolge abrufen, die nach "; {name} =" und vor dem nächsten ";" steht. Bevor wir eine Verarbeitung durchführen, stellen wir der Cookie-Zeichenfolge ";" voran, sodass jeder Cookie-Name, einschließlich des ersten, mit ";" und "=" eingeschlossen wird:
"; {name}={value}; {name}={value}; ..."
Jetzt können wir zuerst durch "; {name} =" teilen. Wenn ein Token in einer Cookie-Zeichenfolge gefunden wird (dh wir haben zwei Elemente), wird das zweite Element eine Zeichenfolge sein, die mit unserem Cookie-Wert beginnt. Dann ziehen wir das aus einem Array (dh Pop) und wiederholen den gleichen Vorgang, aber jetzt mit ";" als Token, aber diesmal ziehen Sie die linke Zeichenfolge (dh Shift) heraus, um den tatsächlichen Token-Wert zu erhalten.