DEV Community

Cover image for জাভাস্ক্রিপ্ট ডেটা স্ট্রাকচার - অ্যারে
Muhid Hossain
Muhid Hossain

Posted on • Edited on

জাভাস্ক্রিপ্ট ডেটা স্ট্রাকচার - অ্যারে

সোর্স: www.learnersbucket.com

একই টাইপের অনেকগুলো ডেটা স্ট্রোর করার জন্য যে ডেটা স্ট্রাকচার ব্যবহার করা হয় অ্যারে তার মধ্যে অন্যতম। জাভাস্ক্রিপ্ট-এ অ্যারেও একটি অবজেক্ট যার অ্যারের মতো বৈশিষ্ট্য রয়েছে।

জাভাস্ক্রিপ্ট-এ অ্যারে জিরো ইনবক্স বেইজড, যার মানে অ্যারে এর মধ্যে প্রথম ভ্যালু শূন্যতম পজিশনে দ্বিতীয় ভ্যালু প্রথম পজিশনে তারপর এভাবেই চলতে থাকে।

let numbers = [10, 20, 30, 40];
Enter fullscreen mode Exit fullscreen mode

জাভাস্ক্রিপ্ট-এ অ্যারে তৈরি করা

জাভাস্ক্রিপ্ট-এ অনেকগুলো উপায়ে অ্যারে ডিকলার করা যায়। জাভাস্ক্রিপ্ট-এ অ্যারে-এর নির্দিষ্ট কোনো ডাইমেনশন নেই, তাই ডিক্লেয়ার করার সময় সাইজ ঠিক করে দেয়া লাগে না।

সিনট্যাক্স

//[] ব্যবহার করে অ্যারে ডিক্লেয়ার
let week = []; //সহজ উপায়

//সপ্তাহের তিন দিন নিয়ে একটি অ্যারে
let week = ['Monday', 'Tuesday', 'Wednesday'];

//কনস্ট্রাক্টর ব্যবহার করে অ্যারে ডিক্লেয়ার
let week = new Array();  

//অ্যারে লেন্থ ৭ এর একটি অ্যারে
let week = new Array(7); 

//সপ্তাহের তিন দিন নিয়ে একটি অ্যারে
let week = new Array('Monday', 'Tuesday', 'Wednesday'); 
Enter fullscreen mode Exit fullscreen mode

[ ] ব্যাবহার করে অ্যারে ডিক্লেয়ার করা বেশি সুবিধাজনক।

জাভাস্ক্রিপ্ট-এ অ্যারে একটি অবজেক্ট তাই চাইলেই জাভাস্ক্রিপ্ট-এ আছে এরকম যে কোনো টাইপের ডেটা একটি অ্যারেতে স্টোর করা যায়।

অ্যারে লেন্থ

প্রত্যেকটি অ্যারেরই একটি লেন্থ প্রপার্টি থাকে যা ব্যবহার করে আমরা অ্যারের সাইজ জানতে পারি।

let week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
console.log(week.length);
//7
Enter fullscreen mode Exit fullscreen mode

যেহেতু জাভাস্ক্রিপ্ট-এ নির্দিষ্ট কোন ডায়মেনশন নেই তাই length প্রোপার্টি হল সর্বশেষ ইনডেক্স + ১ এর ইলিমেন্ট নির্দেশ করে।

let arr = [];
arr[1000] = 1;
console.log(arr.length);
//1001
Enter fullscreen mode Exit fullscreen mode

যদিও এখানে ১০০০ তম ইনডেক্সে একটিমাত্র ইলিমিট রয়েছে তারপরও আমরা এখানে অ্যারে লেন্থ ১০০১ পাচ্ছি।
জাভাস্ক্রিপ্ট-এ অ্যারেতে সর্বোচ্চ ৪,২৯৪,৯৬৭,২৯৫ সংখ্যক মান থাকতে পারে।

অ্যারেতে ইলিমেন্ট অ্যাড করা

অ্যারে-এর শেষে ইলিমেন্ট অ্যাড করা

অ্যারে-এর শেষে ইলিমেন্ট অ্যাড করার জন্য আমরা Array.push() মেথড ব্যবহার করতে পারি।

let arr = [1, 2, 3, 4];
arr.push(5);
//[1, 2, 3, 4, 5];
arr.push(6, 7);
//[1, 2, 3, 4, 5, 6, 7];
Enter fullscreen mode Exit fullscreen mode

এছাড়া length প্রোপার্টি ব্যবহার করেও অ্যারে-এর শেষে ইলিমেন্ট অ্যাড করা যায়।

let arr = [1, 2, 3, 4];
arr[arr.length] = 5;
//[1, 2, 3, 4, 5];
Enter fullscreen mode Exit fullscreen mode

অ্যারে-এর শুরুতে ইলিমেন্ট অ্যাড করা

অ্যারে-এর শুরুতে ইলিমেন্ট অ্যাড করার জন্য আমরা Array.unshift() মেথড ব্যবহার করতে পারি।

let arr = [2, 3, 4, 5];
arr.unshift(0, 1);
//[0, 1, 2, 3, 4, 5];
Enter fullscreen mode Exit fullscreen mode

অ্যারে-এর নির্দিষ্ট কোনো ইনডেক্সে ইলিমেন্ট অ্যাড করা

অ্যারে-এর নির্দিষ্ট ইনডেক্সে ইলিমেন্ট অ্যাড করার জন্য আমরা Array.splice() মেথড ব্যবহার করতে পারি।

let arr = [1, 2, 3, 5, 6];
arr.splice(3, 0, 4);
//[1, 2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

Array.splice() সম্পর্কে বিস্তারিত: Array.splice()

অ্যারে থেকে ইলিমেন্ট রিমুভ করা

অ্যারে-এর শেষ থেকে ইলিমেন্ট রিমুভ করা

অ্যারে-এর শেষ থেকে ইলিমেন্ট রিমুভ করার জন্য আমরা Array.pop() মেথড ব্যবহার করতে পারি। এই অ্যারে-এর শেষ ইলিমেন্টটি রিমুভ ও রিটার্ন করে।

let arr = [1, 2, 3, 4, 5];
let last = arr.pop();
console.log(arr);
//[1, 2, 3, 4];

console.log(last);
//5
Enter fullscreen mode Exit fullscreen mode

আমার length প্রোপার্টি ব্যবহার করেও অ্যারে থেকে ইলিমেন্ট রিমুভ করতে পারি। এই পদ্ধতি অ্যারে ছোট করে এবং রিমুভ করা ইলিমেন্ট অ্যাক্সেস করা যায় না।

let arr = [1, 2, 3, 4, 5];
arr.length = 3;
console.log(arr);
//[1, 2, 3];
Enter fullscreen mode Exit fullscreen mode

অ্যারে-এর শুরু থেকে ইলিমেন্ট রিমুভ করা

অ্যারে-এর শুরু থেকে ইলিমেন্ট রিমুভ করতে আমরা Array.shift() মেথড ব্যবহার করতে পারি।

let arr = [1, 2, 3, 4, 5];
console.log(arr.shift());
//1

console.log(arr);
//[2, 3, 4, 5]
Enter fullscreen mode Exit fullscreen mode

অ্যারে-এর নির্দিষ্ট কোনো ইনডেক্সের ইলিমেন্ট রিমুভ করা

অ্যারে-এর নির্দিষ্ট কোনো ইনডেক্সের ইলিমেন্ট রিমুভ করতে আমরা Array.slice() বা Array.splice() ব্যবহার করতে পারি।

let arr = [1, 2, 3, 4, 5];

let elm = arr.splice(2, 1);
console.log(elm);
//3

let elm2 = arr.slice(2, 3);
console.log(elm2);
//4
Enter fullscreen mode Exit fullscreen mode

Array.splice(start, count) start ইনডেক্স থেকে শুরু করে count পর্যন্ত সকল ইলিমেন্ট রিমুভ করে। এটি অরিজিনাল অ্যারেকে পরিবর্তন করে।
Array.slice(start, end) start এবং end ইনডেক্সের মধ্যে সকল ইলিমেন্ট রিমুভ করে। এটি অরিজিনাল অ্যারেকে পরিবর্তন করে না।

delete অপারেটর ব্যবহার করে অ্যারে থেকে ইলিমেন্ট ডিলেট করা

যেহেতু জাভাস্ক্রিপ্ট-এ অ্যারেও অবজেক্ট তাই আমারা delete অপারেটর ব্যবহার করে ইলিমেন্ট ডিলেট করতে পারি।

let arr = [1, 2, 3, 4, 5];
delete arr[3];
//[1, 2, 3, empty, 5];
Enter fullscreen mode Exit fullscreen mode

তবে এই মেথড ব্যবহার করলে ইলিমেন্টটি সম্পুর্ন ভাবে রিমুভ হয় না, এটি শুধু নির্দিষ্ট ইনডেক্সের ইলিমেন্ট ডিলেট করে দেয়।

অ্যারে-এর ইলিমেন্ট এক্সেস করা

যেহেতু অ্যারে জিরো ইনডেক্স বেইজড তাই আমরা নিউমেরিক ইনডেক্স ব্যবহার করে ইলিমেন্ট এক্সেস করতে পারি।

let arr = [1, 2, 3, 4, 5];
arr[0];
//1

arr[1];
//2

arr[2];
//3

arr[3];
//4
Enter fullscreen mode Exit fullscreen mode

যদি এমন কোনো ইলিমেন্ট এক্সেস করতে চাওয়া হয় যা অ্যারেতে বিদ্যমান নয় তাহলে undefined রিটার্ন করবে।

অ্যারেতে লুপ এর ব্যবহার

যেহেতু জাভাস্ক্রিপ্ট নিউমেরিক ইনডেক্স বেইজড তাই আমরা এর length ব্যবহার করে প্রতিটি ইলিমেন্টের উপর লুপ চালাতে পারি।

for লুপের ব্যবহার

let arr = [1, 2, 3, 4, 5];
for(let i = 0; i < arr.length; i++){
   console.log(arr[i]);
}

//1
//2
//3
//4
//5
Enter fullscreen mode Exit fullscreen mode

for...in লুপের ব্যবহার

জাভাস্ক্রিপ্ট-এ অ্যারেও অবজেক্ট হওয়ায় আমরা for...in লুপ ব্যবহার করতে পারি। তবে খেয়াল রাখতে হবে এক্ষেত্রে প্রোপাটির অর্ডার ঠিক থাকবে তার কোন নিশ্চয়তা নেই।

let arr = [1, 2, 3, 4, 5];
for(let prop in arr){
  console.log(arr[prop]);
}

//1
//2
//3
//4
//5
Enter fullscreen mode Exit fullscreen mode

forEach() মেথডের ব্যবহার

let arr = [1, 2, 3, 4, 5];
arr.forEach((e, i) => {
   console.log(`${e} is at index ${i}`);
});

//1 is at index 0
//2 is at index 1
//3 is at index 2
//4 is at index 3
//5 is at index 4
Enter fullscreen mode Exit fullscreen mode

Array.forEach() মেথড অ্যারে-এর সকল ইলিমেন্টের উপর লুপ চালায় এবং ইলিমেন্ট ও ইনডেক্স কল ব্যাক ফাংশনে পাস করে।

for...of লুপের ব্যবহার

let arr = [1, 2, 3, 4, 5];
for(let val of arr){
   console.log(val);
}

//1
//2
//3
//4
//5
Enter fullscreen mode Exit fullscreen mode

অ্যারে সর্টিং

জাভাস্ক্রিপ্ট-এ অ্যারে সর্টিং এর জন্য নিজস্ব মেথড রয়েছে।

let arr = [2, 5, 3, 7, 5];
arr.sort(); //By default in ascending order
//[2, 3, 5, 5, 7];

arr.sort((a, b) => b - a);
//[7, 5, 5, 3, 2]
Enter fullscreen mode Exit fullscreen mode

Array.sort() মেথড একটি কলব্যাক ফাংশন নেয় এবং রিটার্ন করা ভেলু এর উপর নির্ভর করে ইলিমেন্ট গুলো সর্ট করে।

অ্যারে-এর মধ্যে ইলিমেন্ট সার্চ করা

জাভাস্ক্রিপ্ট-এ অ্যারে এর মধ্যে ইলিমেন্ট সার্চ করার জন্য নিজস্ব মেথড রয়েছে।

Array.indexOf() ব্যবহার করে সার্চ করা।

Array.indexOf() মেথড ম্যাচিং ইলিমেন্টের ইনডেক্স রিটার্ন করে। ইলিমেন্টটি খুঁজে না পেলে -1 রিটার্ন করে।

let arr = [2, 5, 3, 7, 5];
arr.indexOf(2);
//0

arr.indexOf(1);
//-1
Enter fullscreen mode Exit fullscreen mode

Array.includes() ব্যবহার করে সার্চ করা

Array.includes() ES7 এর একটি মেথড, যা অ্যারে-এর মধ্যে কোনো ইলিমেন্ট বিদ্যমান কিনা তা চেক করার জন্য ব্যবহার করা হয়। এটি ইলিমেন্ট খুঁজে পেলে true আর না পেলে false রিটার্ন করে।

let arr = [2, 5, 3, 7, 5];
arr.includes(2);
//true

arr.includes(1);
//false
Enter fullscreen mode Exit fullscreen mode

মাল্টি-ডাইমেনশনাল অ্যারে

জাভাস্ক্রিপ্ট-এ অ্যারে অনেক ফ্লেক্সিবাল এবং সাধারনত ইনিশিয়ালাইজড নয়। আমরা যদি ইনিশিয়ালাইজড ভেলু সহ অ্যারে তৈরি করতে চাই তাহলে Array.fill(value) ব্যবহার করতে পারি।

let arr = new Array(7).fill(1);
//[1, 1, 1, 1, 1, 1, 1];
Enter fullscreen mode Exit fullscreen mode

জাভাস্ক্রিপ্ট-এ মাল্টি-ডাইমেনশনাল অ্যারে নেই, কিন্তু একটি অ্যারে-এর মধ্যে আরেকটি অ্যারে রাখা যায়।

let matrix = [
   [1, 2, 3],
   [4, 5, 6],
   [7, 8, 9]
];

/*
(3) [Array(3), Array(3), Array(3)]
0: (3) [1, 2, 3]
1: (3) [4, 5, 6]
2: (3) [7, 8, 9]
length: 3
__proto__: Array(0)
*/
Enter fullscreen mode Exit fullscreen mode

আমরা ইলিমেন্ট এক্সেস করার জন্য লুপ চালাতে পারি।

for(let i = 0; i < matrix.length; i++){
   for(let j = 0; j < matrix[i].length; j++){
       console.log(matrix[i][j]);
   }
}

//1
//2
//3
//4
//5
.
.
.
Enter fullscreen mode Exit fullscreen mode

আমরা দুইটি স্কয়ার ব্রাকেট [][] ব্যবহার করেছি। কারন প্রথম স্কয়ার ব্রাকেট অ্যারে রিটার্ন করে এবং দ্বিতীয় স্কয়ার ব্রাকেট ঐ অ্যারে-এর ইলিমেন্ট এক্সেস করে।

let arr = matrix[0];
//[1, 2, 3]

arr[0]
//1

or

let arr = matrix[0][0]
//1
Enter fullscreen mode Exit fullscreen mode

যেহেতু আমারা অ্যারে-এর মধ্যে অ্যারে রাখতে পারি, তাই আমরা নেস্টেট অ্যারে তৈরি করতে পারি।

let arr = [
   [
     [1, 2, 3],
     [3, 4, 5] 
   ],
   [
     [1, 2, 3],
     [3, 4, 5]
   ]
];

for(let i = 0; i < arr.length; i++){
  for(let j = 0; j < arr[i].length; j++){
    for(let k = 0; k < arr[i][j].length; k++){
        console.log(arr[i][j][k]);
    }
  }
}

//1
//2
//3
//3
//4
//5
.
.
.
Enter fullscreen mode Exit fullscreen mode

জাভাস্ক্রিপ্ট অ্যারে-এর নির্দিষ্ট কোনো ডাইমেনশন নেই, তাই আমরা জিগজ্যাক মাল্টি-ডাইমেনশনাল অ্যারে তৈরি করতে পারি।

let arr = [
   [1, 2, 3, 4, 5],
   [1, 2],
   [1, 2, 3, 4],
   [1, 2, 3]
];
Enter fullscreen mode Exit fullscreen mode

যেকোনো ভ্যালু অ্যারে কিনা তা চেক করা

জাভাস্ক্রিপ্ট-এ কোনো ভেলু আ্যারে কিনা চেক করার জন্য নিজস্ব মেথড রয়েছে

Array.isArray() মেথড ব্যবহার করে

let arr = [1, 2, 3];

Array.isArray(arr);
//true

Array.isArray('string');
//false

Array.isArray({abc: 'xyz'});
///false
Enter fullscreen mode Exit fullscreen mode

Top comments (2)

Collapse
 
oliullah profile image
Md. Oliullah Sarder

Useful

Collapse
 
muhidhossain profile image
Muhid Hossain • Edited

Thank you