در دو مقاله پیش، با مفاهیم پایه ای کافی اسکریپت آشنا شدیم. اکنون نوبت آن است که به مقوله آرایه و هش بپردازیم. آرایه، به مجموعه ای از متغیر ها گفته می شود که درون یک فضای بخصوص قرار گرفته اند. برای تعریف کردن آرایه ها در کافی اسکریپت، به شکل زیر عمل میکنیم :
array = [1, 2, 3, 4, 5]
و کد فوق در جاوااسکریپت به این شکل در می آید :
var array;
array = [1, 2, 3, 4, 5];
اعضای آرایه، هر کدام یک نمایه ( = Index) مخصوص به خود دارند، شما با استفاده از این نمایه، میتوانید به سادگی عضو مورد نظر خود در آرایه را فراخوانی کنید. نمایه ها از صفر شروع شده، و تا یکی کمتر از طول آرایه، ادامه دارند. در واقع طول آرایه را میتوان با استفاده از متد length به دست آورد :
alert array.length
خروجی دستور بالا، عدد ۵ است، و نمایه آخرین عضو آرایه array ، ۴ می باشد. فی الواقع با فراخوانی یکی یکی این نمایه ها میتوان به این اصل دست پیدا کرد :
array = [1, 2, 3, 4, 5]
alert array[0]
alert array[1]
alert array[2]
alert array[3]
alert array[4]
این کد در جاوااسکریپت به شکل زیر در می آید :
var array;
array = [1, 2, 3, 4, 5];
alert(array[0]);
alert(array[1]);
alert(array[2]);
alert(array[3]);
alert(array[4]);
اکنون، میخواهیم عضوی که در آرایه نیست، را به آن اضافه کنیم. برای مثال، عضوی با نمایه ۵ درون آرایه، موجود نیست. پس میتوانیم عضو مورد نظر را به آرایه اضافه کنیم :
array[5] = 6
تمام موضوعات مربوط به آرایه، در خطوط بالا گنجانده شده اند.
با استفاده از این متد ها، در آموزشهای بعدی، یعنی حلقه های تکرار، میتوانیم برنامه های بسیار جالبی بنویسیم. نکته حائز اهمیت این است که این رفتارها (نمایه ها و …) و متد ها، بین آرایه ها و متغیرهای نوع string مشترک هستند. در واقع میتوان نتیجه گرفت که string یک آرایه از کاراکترهاست.
اکنون به سراغ هش ها میرویم. هش ها، نوع بسیار خاصی از آرایه ها هستند. در هش ها، نمایه ها توسط کاربر تعریف میشوند. در واقع میتوان گفت که هش، نوعی دیکشنری است.
برای تعریف یک هش ساده (برای مثال دیکشنری دو کلمه ای انگلیسی به اسپانیایی) به شکل زیر عمل میکنیم :
en2es = {
"Hello" : "Hola"
"How are you?" : "Como esta?"
}
کد فوق در جاوااسکریپت به این شکل در می آید :
var en2es;
en2es = {
"Hello": "Hola",
"How are you?": "Como esta?"
};
برای فراخوانی مقادیر موجود در هش هم کافیست تا یکی از نمایه ها را فراخوانی کنیم، سپس مقداری که نمایه اختیار کرده است، نمایش می یابد.
مثلا در کد زیر، عبارت انگلیسی از کاربر دریافت شده، معادل اسپانیایی تحویل داده می شود :
en2es = {
"Hello" : "Hola"
"How are you?" : "Como esta?"
}
word = prompt "Enter English word: "
alert en2es[word]
که کد فوق در جاوااسکریپت به این شکل در می آید :
var en2es, word;
en2es = {
"Hello": "Hola",
"How are you?": "Como esta?"
};
word = prompt("Enter English word: ");
alert(en2es[word]);
در آموزش بعدی، زمانی که دستورات شرطی را فرا بگیریم، میتوانیم برنامه فوق را کنترل شده تر بنویسیم، برای مثال اگر لغت موجود بود، معادلش برگردانده شود، در غیر اینصورت، اروری برای کاربر نمایش داده شود.
یکی دیگر از خواص هش ها، این است که میتوان به این شکل نیز از آنها استفاده نمود :
student = {
name : "Muhammadreza Haghiri"
number : 1
}
در واقع این نوع تعریف، تعریف متغیرهای جهانی (Global) در جاوااسکریپت است. قطعه کد فوق در جاوااسکریپت نیز چنین است :
var student;
student = {
name: "Muhammadreza Haghiri",
number: 1
};
برای فراخوانی متغیر name هم کافیست اینگونه عمل کنیم :
alert student.name
برای درک بهتر این نوع تعریف متغیرها، بهتر است مقاله بهترین تمرینات برای تازه کاران را بخوانید.
در این مقاله، سعی شد هر در مورد آرایه و هش لازم است، گفته شود. در مقالات بعدی، با ساختارهای کنترلی آشنا خواهیم شد، سپس به سراغ سایر مفاهیم برنامه نویسی در کافی اسکریپت میرویم.