JavaScript অ্যারে

জেভাস্ক্রিপ্ট আইসিডি একটি ভেক্টর যা একটি সমস্ত মান সংরক্ষণ করতে পারে。

উদাহরণ

var cars = ["Saab", "Volvo", "BMW"];

আপনার নিজেই প্রয়াস করুন

কি আইসিডি?

আইসিডি একটি বিশেষ ভেক্টর হল যা একবারে একাধিক মান সংরক্ষণ করতে পারে。

আপনি একটি প্রকল্প তালিকা (যেমন, কার ব্র্যান্ড তালিকা) আছে, তবে একটি সমস্ত কার ব্র্যান্ডকে একটি একক ভেক্টরে সংরক্ষণ করা এমনটা হবে:

var car1 = "Saab";
var car2 = "Volvo";
var car3 = "BMW"; 

কিন্তু আপনি সমস্ত কার দিলার মধ্যে একটি নির্দিষ্ট মান চুনাতে চান? যদি তা তিনটি কার ব্র্যান্ড না হোক, বরং তিনশটি কার ব্র্যান্ড হোক?

সমাধান হল আইসিডি!

আইসিডি একটি অল্প নামে অনেক মান ধারণ করতে পারে এবং এই মানগুলোকে তাদের ইন্ডেক্সিং নম্বর দ্বারা উল্লেখ করা যায়。

আইসিডি তৈরি করা

আইসিডি টেক্সট ব্যবহার করা হল জেভাস্ক্রিপ্টে আইসিডি তৈরি করার সবচেয়ে সরল পদ্ধতি。

সিন্তাক্স:

var array-name = [item1, item2, ...];

উদাহরণ

var cars = ["Saab", "Volvo", "BMW"];

আপনার নিজেই প্রয়াস করুন

স্পেস ও ভাঙ্গা লাইন অত্যন্ত গুরুত্বপূর্ণ নয়। ঘোষণা বহুল লাইনে বিস্তৃত হতে পারে:

উদাহরণ

var cars = [
    "Saab",
    "Volvo",
    "BMW"
];

আপনার নিজেই প্রয়াস করুন

আপনাকে সর্বশেষ উপাদানের পরে কমা লিখতে হবে না (যেমন "BMW",)

ব্রাউজারের মধ্যে ক্রস-ব্রাউজার সাধারণত সামঞ্জস্য থাকে。

জেভাস্ক্রিপ্ট কীওয়ার্ড new ব্যবহার করে

নিচের উদাহরণও একইভাবে আইসিডি তৈরি করবে এবং তাকে মান প্রদান করবে:

উদাহরণ

var cars = new Array("Saab", "Volvo", "BMW");

আপনার নিজেই প্রয়াস করুন

এই দুটি উদাহরণ একইভাবে কাজ করে। কোনও ব্যবহার করা উচিত না: new Array()

সরলতা, পড়ার মান এবং বাস্তবায়নের গতির জন্য, প্রথমটি (আইসিডি টেক্সট পদ্ধতি) ব্যবহার করুন。

আইসিডি উপাদান পড়া

আমরা আইসিডি উপাদান উল্লেখ করেইন্ডেক্সিং নম্বর (ডবল নম্বর)কোনও আইসিডি উপাদানকে উল্লেখ করার জন্য。

এই বিন্যাস পদ্ধতি দ্বারা cars ের প্রথম উপাদানের মান পড়ে:

var name = cars[0];

এই বিন্যাস পদ্ধতি দ্বারা cars ের প্রথম উপাদান পরিবর্তন করে:

cars[0] = "Opel";

উদাহরণ

var cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars[0]; 

আপনার নিজেই প্রয়াস করুন

[0] হল আইসিডি-র প্রথম উপাদান।[1] দ্বিতীয়তা। আইসিডি-র ইন্ডেক্সিং পদ্ধতি ০ থেকে শুরু হয়。

আইসিডি পদ্ধতি পরিবর্তন

এই বিন্যাস পদ্ধতি দ্বারা cars ের প্রথম উপাদানের মান পরিবর্তন করে:

cars[0] = "Opel";

উদাহরণ

var cars = ["Saab", "Volvo", "BMW"];
cars[0] = "Opel";
document.getElementById("demo").innerHTML = cars[0];

আপনার নিজেই প্রয়াস করুন

পূর্ণ এক্সেকিউটিভসমূহকে প্রবেশ করা

জেভাস্ক্রিপ্ট দ্বারা, এক্সেকিউটিভসমূহকে পূর্ণ এক্সেকিউটিভসমূহকে প্রবেশ করার জন্য এক্সেকিউটিভসমূহকে প্রবেশ করার নাম দ্বারা প্রবেশ করা যায়:

উদাহরণ

var cars = ["Saab", "Volvo", "BMW"];
document.getElementById("demo").innerHTML = cars; 

আপনার নিজেই প্রয়াস করুন

এক্সেকিউটিভসমূহ

এক্সেকিউটিভসমূহকে জেভাস্ক্রিপ্টে ব্যবহার করার জন্য typeof অপারেটরসমূহ ফলাফল "object" ফিরিয়ে দেয়

কিন্তু, জেভাস্ক্রিপ্ট এক্সেকিউটিভসমূহকে সবচেয়ে ভালোভাবে এক্সেকিউটিভসমূহ হিসেবে বর্ণনা করা যায়。

এক্সেকিউটিভ ব্যবহারসংখ্যাতার "এলিমেন্ট" প্রবেশ করার জন্য। এই উদাহরণেperson[0] Bill ফিরিয়ে দিতে

এক্সেকিউটিভ:

var person = ["Bill", "Gates", 62];

আপনার নিজেই প্রয়াস করুন

ওবজেক্ট ব্যবহারনামতার "সদস্য" প্রবেশ করার জন্য। এই উদাহরণেperson.firstName Bill ফিরিয়ে দিতে

ওবজেক্ট:

var person = {firstName:"Bill", lastName:"Gates", age:19};

আপনার নিজেই প্রয়াস করুন

এক্সেকিউটিভ এলিমেন্টসমূহকে ওবজেক্ট

জেভাস্ক্রিপ্ট ভেক্টর হতে পারে একটি ওবজেক্ট

এই কারণে, আপনি একই এক্সেকিউটিভসমূহকে আলাদা ধরনের ভেক্টর সংরক্ষণ করতে পারেন。

এই কারণে, আপনি একই এক্সেকিউটিভসমূহকে আলাদা ধরনের ভেক্টর সংরক্ষণ করতে পারেন。

myArray[0] = Date.now;
myArray[1] = myFunction;
myArray[2] = myCars;

এক্সেকিউটিভসমূহ এবং মথুদ

জেভাস্ক্রিপ্ট এক্সেকিউটিভসমূহকে প্রবেশ করার সত্যিকারের শক্তি এক্সেকিউটিভসমূহকে প্রবেশ করার এক্সেকিউটিভসমূহ এবং মথুদসমূহতে আছে:

উদাহরণ

var x = cars.length;   // length এক্সেকিউটিভ এলিমেন্টসমূহকে প্রবেশ করার সংখ্যক ইনডেক্স পাওয়া যায়
var y = cars.sort();   // sort() মথুদ এক্সেকিউটিভসমূহকে সার্ট করে

আমরা আগামী চাপ্তশীতে এক্সেকিউটিভ মথুদ শিখবো

length এক্সেকিউটিভ

length এক্সেকিউটিভসমূহকে প্রবেশ করার সময় এক্সেকিউটিভসমূহকে প্রবেশ করার সংখ্যক ইনডেক্স পাওয়া যায়。

উদাহরণ

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.length;                       // fruits এর দৈর্ঘ্য 4

আপনার নিজেই প্রয়াস করুন

length এক্সেকিউটিভসমূহকে প্রবেশ করার সময় এক্সেকিউটিভসমূহকে প্রবেশ করার সবচেয়ে বেশি সংখ্যক ইনডেক্স পাওয়া যায়。

প্রথম এক্সেকিউটিভ এলিমেন্টকে প্রবেশ করা

উদাহরণ

fruits = ["Banana", "Orange", "Apple", "Mango"];
var first = fruits[0];

আপনার নিজেই প্রয়াস করুন

শেষ এক্সেকিউটিভ এলিমেন্টকে প্রবেশ করা

উদাহরণ

fruits = ["Banana", "Orange", "Apple", "Mango"];
var last = fruits[fruits.length - 1];

আপনার নিজেই প্রয়াস করুন

এক্সেকিউটিভ এলিমেন্টসমূহকে পার্সিং করা

সমস্ত এক্সেকিউটিভসমূহকে পার্সিং করার সবচেয়ে নিরাপদ পদ্ধতি হল "for" চক্র:

উদাহরণ

var fruits, text, fLen, i;
fruits = ["Banana", "Orange", "Apple", "Mango"];
fLen = fruits.length;
text = "<ul>";
for (i = 0; i < fLen; i++) {
     text += "<li>" + fruits[i] + "</li>";
} 

আপনার নিজেই প্রয়াস করুন

আপনি আরও Array.forEach() ফাংশন:

উদাহরণ

var fruits, text;
fruits = ["Banana", "Orange", "Apple", "Mango"];
text = "<ul>";
fruits.forEach(myFunction);
text += "</ul>";
function myFunction(value) {
  text += "<li>" + value + "</li>";
}

আপনার নিজেই প্রয়াস করুন

এক্সেসসাইজ যোগ করা

এক্সেসসাইজ যোগ করার সর্বোত্তম পদ্ধতি হল push() পদ্ধতি:

উদাহরণ

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits.push("Lemon");                // fruits-কে একটি নতুন তত্ত্ব (Lemon) যোগ করা

আপনার নিজেই প্রয়াস করুন

আরও length প্রকারগুলি এক্সেসসাইজকে নতুন তত্ত্ব যোগ করা:

উদাহরণ

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[fruits.length] = "Lemon";     // fruits-কে একটি নতুন তত্ত্ব (Lemon) যোগ করা

আপনার নিজেই প্রয়াস করুন

সতর্কতা!

সর্বোচ্চ ইনডেক্সের তত্ত্ব যোগ করলে এক্সেসসাইজকে অসম্পূর্ণ অংশ তৈরি হবে:

উদাহরণ

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits[6] = "Lemon";                 // fruits-কে একটি নতুন তত্ত্ব (Lemon) যোগ করা

আপনার নিজেই প্রয়াস করুন

সংযুক্ত এক্সেসসাইজ

অনেক প্রোগ্রামিং এলিমেন্ট নামসংকেতমূলক সূচক ব্যবহারকারী এক্সেসসাইজকে সমর্থন করে

নামসংকেতমূলক সূচক ব্যবহারকারী এক্সেসসাইজকে সংযুক্ত এক্সেসসাইজ (বা হ্যাশ) বলা হয়

জেভাস্ক্রিপ্ট সমর্থিত নয়নামসংকেতমূলক সূচক ব্যবহার করা যায়

জেভাস্ক্রিপ্টে, এক্সেসসাইজকে শুধুমাত্রসংখ্যা সূচক

উদাহরণ

var person = [];
person[0] = "Bill";
person[1] = "Gates";
person[2] = 62;
var x = person.length;          // person.length 3 ফলাফল প্রদান করবে
var y = person[0];              // person[0] ফলাফল "Bill" প্রদান করবে

আপনার নিজেই প্রয়াস করুন

সতর্কতা!

যদি আপনি নামসংকেতমূলক সূচক ব্যবহার করেন, তবে JavaScript এই এক্সেসসাইজকে প্রমাণসূচক অবজেক্ট হিসাবে পুনর্নির্দিষ্ট করবে。

পরে, সব এক্সেসসাইজ এবং প্রকারগুলি অসঠিক ফলাফল প্রদান করবে。

উদাহরণ:

var person = [];
person["firstName"] = "Bill";
person["lastName"] = "Gates";
person["age"] = 62;
var x = person.length;         // person.length 0 ফলাফল দেবে
var y = person[0];              // person[0] undefined ফলাফল দেবে

আপনার নিজেই প্রয়াস করুন

এককরণ এবং অবজেক্টের পার্থক্য

যেখানে JavaScript-এএককরণব্যবহার করুনসংখ্যা সূচক

যেখানে JavaScript-এঅবজেক্টব্যবহার করুননামকৃত সূচক

এককরণ একটি বিশেষ ধরনের অবজেক্ট, যা সংখ্যা সূচক ধারণ করে

কখন এককরণ এবং কখন অবজেক্ট ব্যবহার করা হবে?

  • JavaScript এ অসংযুক্ত এককরণকে সমর্থন করে না
  • যদি ইউনাইটের নাম হতে চানশব্দ (লেখা)তবেঅবজেক্ট
  • যদি ইউনাইটের নাম হতে চানসংখ্যাতবেএককরণ

new Array() ব্যবহার না করুন

JavaScript-এর অন্তর্নিহিত এককরণ নির্মাতা ব্যবহার করা প্রয়োজন নেই new Array()

ব্যবহার করুন [] এর পরিবর্তে!

নিচের দুটি ভিন্ন বিবরণকারী বাক্য "points" নামক নতুন খালি এককরণ তৈরি করে:

var points = new Array();         // খারাপ
var points = [];                  // ভালো

নিচের দুটি ভিন্ন বিবরণকারী বাক্য ছয়টি সংখ্যা ধারণকারী নতুন এককরণ তৈরি করে:

var points = new Array(40, 100, 1, 5, 25, 10); // খারাপ
var points = [40, 100, 1, 5, 25, 10];          // ভালো

আপনার নিজেই প্রয়াস করুন

new কীভাবে এককরণকে জটিল করা যায়, এটি অপ্রত্যাশিত ফলাফলও উৎপন্ন করতে পারে:

var points = new Array(40, 100);  // 40 এবং 100 এককরণ ধারণকারী এককরণ তৈরি করা হয়েছে

যদি একটি ইউনাইট মুক্ত করা হয়, তবে কী হবে?

var points = new Array(40);       // 40টি অপরিচিত ইউনাইট ধারণকারী এককরণ তৈরি করা হয়েছে!!

আপনার নিজেই প্রয়াস করুন

কিভাবে এককরণ পরিচিত করা যায়

সাধারণত প্রশ্ন হল: আমি কিভাবে জানতে পারব যে কোনও ভেক্টর এককরণ কি?

সমস্যা হল JavaScript অপারেটর typeof ফলাফল "object“:”

var fruits = ["Banana", "Orange", "Apple", "Mango"];
typeof fruits;             // ফলাফল "object"

আপনার নিজেই প্রয়াস করুন

typeof অপারেটর ফলাফল "object" দেয়, কারণ JavaScript এককরণ একটি অবজেক্ট।

সমাধান 1:

এই সমস্যা সমাধান করতে, ECMAScript 5-এ একটি নতুন পদ্ধতি নির্ধারিত হয়েছে Array.isArray():

Array.isArray(fruits);     // ফলাফল true

আপনার নিজেই প্রয়াস করুন

এই পদ্ধতির সমস্যা হল ECMAScript 5 পুরনো ব্রাউজারগুলির জন্য সহযোগিতা নয়

সমাধান 2:

আপনার নিজেই তৈরি করুন isArray() ফাংশনটি এই সমস্যা সমাধান করে:

function isArray(x) {
    return x.constructor.toString().indexOf("Array") > -1;
}

আপনার নিজেই প্রয়াস করুন

যদি পারামিটার একটি অ্যারে, তবে উপরোক্ত ফাংশনটি সর্বদা true ফলাফল দেয়

বা আরও সঠিক ব্যাখ্যা হল: যদি অবজেক্টের প্রথমোটি "Array" শব্দ নিয়ে থাকে, তবে true ফলাফল দেয়

সমাধান 3:

যদি অবজেক্টটি দেওয়া কনস্ট্রাক্টর দ্বারা তৈরি হয়েছে instanceof অপারেটর ফলাফল true:

var fruits = ["Banana", "Orange", "Apple", "Mango"];
fruits instanceof Array     // ফলাফল true

আপনার নিজেই প্রয়াস করুন