একটি পদ্ধতির, যা অ্যারের মাধ্যমে পুনরাবৃত্তি এড়ানো যায়, তা হ'ল:
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
walkthrough
টোকেন দ্বারা একটি স্ট্রিং বিভক্ত করা হয় যে কোনও একটি স্ট্রিং (একই মান) সহ একটি অ্যারে উত্পাদন করবে, যদি টোকন একটি স্ট্রিংয়ের ক্ষেত্রে পাওয়া যায়, তবে টোকন কোনও স্ট্রিংয়ের সাথে উপস্থিত থাকে না বা দুটি স্ট্রিং সহ একটি অ্যারে তৈরি হয়।
প্রথম (বাম) উপাদানটি টোকেনের আগে যা ছিল তার স্ট্রিং এবং দ্বিতীয়টি (ডান) যা টোকেনের পরে যা ছিল তার স্ট্রিং।
(দ্রষ্টব্য: যদি স্ট্রিংটি একটি টোকেন দিয়ে শুরু হয় তবে প্রথম উপাদানটি খালি স্ট্রিং)
কুকিজ নিম্নলিখিত হিসাবে সংরক্ষণ করা হয়েছে তা বিবেচনা করে:
"{name}={value}; {name}={value}; ..."
নির্দিষ্ট কুকির মানটি পুনরুদ্ধার করার জন্য, আমাদের কেবল "; {নাম} =" এর পরে এবং পরবর্তী ";" এর পরে থাকা স্ট্রিংটি পাওয়া দরকার। আমরা কোনও প্রক্রিয়াজাতকরণের আগে, আমরা কুকিজের স্ট্রিংটিকে ";" দিয়ে আগেই সরবরাহ করি, যাতে প্রথমটি সহ প্রতিটি কুকির নাম ";" এবং "=" দিয়ে আবদ্ধ থাকে:
"; {name}={value}; {name}={value}; ..."
এখন, আমরা প্রথমে "; {নাম} =" দ্বারা বিভক্ত হয়ে যেতে পারি, এবং যদি টোকেনটি কোনও কুকি স্ট্রিংয়ে পাওয়া যায় (যেমন আমাদের দুটি উপাদান রয়েছে) তবে আমরা দ্বিতীয় উপাদানটির সাথে আমাদের কুকির মান দিয়ে শুরু হওয়া স্ট্রিংয়ের সাথে শেষ করব। তারপরে আমরা এটিকে একটি অ্যারে (অর্থাত্ পপ) থেকে বের করি এবং একই প্রক্রিয়াটি পুনরাবৃত্তি করি তবে এখন ";" দিয়ে একটি টোকেন হিসাবে, তবে এবার আসল টোকেন মান পেতে বাম স্ট্রিংটি (অর্থাত্ শিফট) বের করছে।