Satu pendekatan, yang menghindari iterasi pada array, adalah:
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
Panduan
Memisahkan sebuah string dengan token akan menghasilkan, array dengan satu string (nilai yang sama), dalam kasus token tidak ada dalam string, atau array dengan dua string, dalam kasus token ditemukan dalam sebuah string.
Elemen pertama (kiri) adalah string dari apa yang sebelum token, dan yang kedua (kanan) adalah string dari apa yang setelah token.
(CATATAN: jika string dimulai dengan token, elemen pertama adalah string kosong)
Mempertimbangkan bahwa cookie disimpan sebagai berikut:
"{name}={value}; {name}={value}; ..."
untuk mengambil nilai cookie tertentu, kita hanya perlu mendapatkan string setelah "; {name} =" dan sebelum next ";". Sebelum kami melakukan pemrosesan, kami menambahkan string cookie dengan ";", sehingga setiap nama cookie, termasuk yang pertama, dilampirkan dengan ";" dan "=":
"; {name}={value}; {name}={value}; ..."
Sekarang, kita dapat membaginya dengan "; {name} =", dan jika token ditemukan dalam string cookie (yaitu kita memiliki dua elemen), kita akan berakhir dengan elemen kedua menjadi string yang dimulai dengan nilai cookie kita. Lalu kita tarik itu dari array (yaitu pop), dan ulangi proses yang sama, tetapi sekarang dengan ";" sebagai token, tapi kali ini menarik keluar string kiri (yaitu shift) untuk mendapatkan nilai token yang sebenarnya.