সোর্স: www.learnersbucket.com
একই টাইপের অনেকগুলো ডেটা স্ট্রোর করার জন্য যে ডেটা স্ট্রাকচার ব্যবহার করা হয় অ্যারে তার মধ্যে অন্যতম। জাভাস্ক্রিপ্ট-এ অ্যারেও একটি অবজেক্ট যার অ্যারের মতো বৈশিষ্ট্য রয়েছে।
জাভাস্ক্রিপ্ট-এ অ্যারে জিরো ইনবক্স বেইজড, যার মানে অ্যারে এর মধ্যে প্রথম ভ্যালু শূন্যতম পজিশনে দ্বিতীয় ভ্যালু প্রথম পজিশনে তারপর এভাবেই চলতে থাকে।
let numbers = [10, 20, 30, 40];
জাভাস্ক্রিপ্ট-এ অ্যারে তৈরি করা
জাভাস্ক্রিপ্ট-এ অনেকগুলো উপায়ে অ্যারে ডিকলার করা যায়। জাভাস্ক্রিপ্ট-এ অ্যারে-এর নির্দিষ্ট কোনো ডাইমেনশন নেই, তাই ডিক্লেয়ার করার সময় সাইজ ঠিক করে দেয়া লাগে না।
সিনট্যাক্স
//[] ব্যবহার করে অ্যারে ডিক্লেয়ার
let week = []; //সহজ উপায়
//সপ্তাহের তিন দিন নিয়ে একটি অ্যারে
let week = ['Monday', 'Tuesday', 'Wednesday'];
//কনস্ট্রাক্টর ব্যবহার করে অ্যারে ডিক্লেয়ার
let week = new Array();
//অ্যারে লেন্থ ৭ এর একটি অ্যারে
let week = new Array(7);
//সপ্তাহের তিন দিন নিয়ে একটি অ্যারে
let week = new Array('Monday', 'Tuesday', 'Wednesday');
[ ] ব্যাবহার করে অ্যারে ডিক্লেয়ার করা বেশি সুবিধাজনক।
জাভাস্ক্রিপ্ট-এ অ্যারে একটি অবজেক্ট তাই চাইলেই জাভাস্ক্রিপ্ট-এ আছে এরকম যে কোনো টাইপের ডেটা একটি অ্যারেতে স্টোর করা যায়।
অ্যারে লেন্থ
প্রত্যেকটি অ্যারেরই একটি লেন্থ প্রপার্টি থাকে যা ব্যবহার করে আমরা অ্যারের সাইজ জানতে পারি।
let week = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
console.log(week.length);
//7
যেহেতু জাভাস্ক্রিপ্ট-এ নির্দিষ্ট কোন ডায়মেনশন নেই তাই length
প্রোপার্টি হল সর্বশেষ ইনডেক্স + ১ এর ইলিমেন্ট নির্দেশ করে।
let arr = [];
arr[1000] = 1;
console.log(arr.length);
//1001
যদিও এখানে ১০০০ তম ইনডেক্সে একটিমাত্র ইলিমিট রয়েছে তারপরও আমরা এখানে অ্যারে লেন্থ ১০০১ পাচ্ছি।
জাভাস্ক্রিপ্ট-এ অ্যারেতে সর্বোচ্চ ৪,২৯৪,৯৬৭,২৯৫ সংখ্যক মান থাকতে পারে।
অ্যারেতে ইলিমেন্ট অ্যাড করা
অ্যারে-এর শেষে ইলিমেন্ট অ্যাড করা
অ্যারে-এর শেষে ইলিমেন্ট অ্যাড করার জন্য আমরা 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];
এছাড়া length
প্রোপার্টি ব্যবহার করেও অ্যারে-এর শেষে ইলিমেন্ট অ্যাড করা যায়।
let arr = [1, 2, 3, 4];
arr[arr.length] = 5;
//[1, 2, 3, 4, 5];
অ্যারে-এর শুরুতে ইলিমেন্ট অ্যাড করা
অ্যারে-এর শুরুতে ইলিমেন্ট অ্যাড করার জন্য আমরা Array.unshift()
মেথড ব্যবহার করতে পারি।
let arr = [2, 3, 4, 5];
arr.unshift(0, 1);
//[0, 1, 2, 3, 4, 5];
অ্যারে-এর নির্দিষ্ট কোনো ইনডেক্সে ইলিমেন্ট অ্যাড করা
অ্যারে-এর নির্দিষ্ট ইনডেক্সে ইলিমেন্ট অ্যাড করার জন্য আমরা Array.splice()
মেথড ব্যবহার করতে পারি।
let arr = [1, 2, 3, 5, 6];
arr.splice(3, 0, 4);
//[1, 2, 3, 4, 5, 6]
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
আমার length
প্রোপার্টি ব্যবহার করেও অ্যারে থেকে ইলিমেন্ট রিমুভ করতে পারি। এই পদ্ধতি অ্যারে ছোট করে এবং রিমুভ করা ইলিমেন্ট অ্যাক্সেস করা যায় না।
let arr = [1, 2, 3, 4, 5];
arr.length = 3;
console.log(arr);
//[1, 2, 3];
অ্যারে-এর শুরু থেকে ইলিমেন্ট রিমুভ করা
অ্যারে-এর শুরু থেকে ইলিমেন্ট রিমুভ করতে আমরা Array.shift()
মেথড ব্যবহার করতে পারি।
let arr = [1, 2, 3, 4, 5];
console.log(arr.shift());
//1
console.log(arr);
//[2, 3, 4, 5]
অ্যারে-এর নির্দিষ্ট কোনো ইনডেক্সের ইলিমেন্ট রিমুভ করা
অ্যারে-এর নির্দিষ্ট কোনো ইনডেক্সের ইলিমেন্ট রিমুভ করতে আমরা 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
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];
তবে এই মেথড ব্যবহার করলে ইলিমেন্টটি সম্পুর্ন ভাবে রিমুভ হয় না, এটি শুধু নির্দিষ্ট ইনডেক্সের ইলিমেন্ট ডিলেট করে দেয়।
অ্যারে-এর ইলিমেন্ট এক্সেস করা
যেহেতু অ্যারে জিরো ইনডেক্স বেইজড তাই আমরা নিউমেরিক ইনডেক্স ব্যবহার করে ইলিমেন্ট এক্সেস করতে পারি।
let arr = [1, 2, 3, 4, 5];
arr[0];
//1
arr[1];
//2
arr[2];
//3
arr[3];
//4
যদি এমন কোনো ইলিমেন্ট এক্সেস করতে চাওয়া হয় যা অ্যারেতে বিদ্যমান নয় তাহলে 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
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
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
Array.forEach()
মেথড অ্যারে-এর সকল ইলিমেন্টের উপর লুপ চালায় এবং ইলিমেন্ট ও ইনডেক্স কল ব্যাক ফাংশনে পাস করে।
for...of
লুপের ব্যবহার
let arr = [1, 2, 3, 4, 5];
for(let val of arr){
console.log(val);
}
//1
//2
//3
//4
//5
অ্যারে সর্টিং
জাভাস্ক্রিপ্ট-এ অ্যারে সর্টিং এর জন্য নিজস্ব মেথড রয়েছে।
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]
Array.sort()
মেথড একটি কলব্যাক ফাংশন নেয় এবং রিটার্ন করা ভেলু এর উপর নির্ভর করে ইলিমেন্ট গুলো সর্ট করে।
অ্যারে-এর মধ্যে ইলিমেন্ট সার্চ করা
জাভাস্ক্রিপ্ট-এ অ্যারে এর মধ্যে ইলিমেন্ট সার্চ করার জন্য নিজস্ব মেথড রয়েছে।
Array.indexOf()
ব্যবহার করে সার্চ করা।
Array.indexOf()
মেথড ম্যাচিং ইলিমেন্টের ইনডেক্স রিটার্ন করে। ইলিমেন্টটি খুঁজে না পেলে -1 রিটার্ন করে।
let arr = [2, 5, 3, 7, 5];
arr.indexOf(2);
//0
arr.indexOf(1);
//-1
Array.includes()
ব্যবহার করে সার্চ করা
Array.includes()
ES7 এর একটি মেথড, যা অ্যারে-এর মধ্যে কোনো ইলিমেন্ট বিদ্যমান কিনা তা চেক করার জন্য ব্যবহার করা হয়। এটি ইলিমেন্ট খুঁজে পেলে true আর না পেলে false রিটার্ন করে।
let arr = [2, 5, 3, 7, 5];
arr.includes(2);
//true
arr.includes(1);
//false
মাল্টি-ডাইমেনশনাল অ্যারে
জাভাস্ক্রিপ্ট-এ অ্যারে অনেক ফ্লেক্সিবাল এবং সাধারনত ইনিশিয়ালাইজড নয়। আমরা যদি ইনিশিয়ালাইজড ভেলু সহ অ্যারে তৈরি করতে চাই তাহলে Array.fill(value)
ব্যবহার করতে পারি।
let arr = new Array(7).fill(1);
//[1, 1, 1, 1, 1, 1, 1];
জাভাস্ক্রিপ্ট-এ মাল্টি-ডাইমেনশনাল অ্যারে নেই, কিন্তু একটি অ্যারে-এর মধ্যে আরেকটি অ্যারে রাখা যায়।
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)
*/
আমরা ইলিমেন্ট এক্সেস করার জন্য লুপ চালাতে পারি।
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
.
.
.
আমরা দুইটি স্কয়ার ব্রাকেট [][] ব্যবহার করেছি। কারন প্রথম স্কয়ার ব্রাকেট অ্যারে রিটার্ন করে এবং দ্বিতীয় স্কয়ার ব্রাকেট ঐ অ্যারে-এর ইলিমেন্ট এক্সেস করে।
let arr = matrix[0];
//[1, 2, 3]
arr[0]
//1
or
let arr = matrix[0][0]
//1
যেহেতু আমারা অ্যারে-এর মধ্যে অ্যারে রাখতে পারি, তাই আমরা নেস্টেট অ্যারে তৈরি করতে পারি।
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
.
.
.
জাভাস্ক্রিপ্ট অ্যারে-এর নির্দিষ্ট কোনো ডাইমেনশন নেই, তাই আমরা জিগজ্যাক মাল্টি-ডাইমেনশনাল অ্যারে তৈরি করতে পারি।
let arr = [
[1, 2, 3, 4, 5],
[1, 2],
[1, 2, 3, 4],
[1, 2, 3]
];
যেকোনো ভ্যালু অ্যারে কিনা তা চেক করা
জাভাস্ক্রিপ্ট-এ কোনো ভেলু আ্যারে কিনা চেক করার জন্য নিজস্ব মেথড রয়েছে
Array.isArray()
মেথড ব্যবহার করে
let arr = [1, 2, 3];
Array.isArray(arr);
//true
Array.isArray('string');
//false
Array.isArray({abc: 'xyz'});
///false
Top comments (2)
Useful
Thank you