Array Comprehensions এবং Object Comprehensions CoffeeScript-এর এমন শক্তিশালী বৈশিষ্ট্য যা আপনাকে অ্যারে বা অবজেক্টের উপাদানগুলো খুব সহজভাবে ফিল্টার, ম্যাপ, এবং ট্রান্সফর্ম করতে সাহায্য করে। এগুলোর মাধ্যমে আপনি কোড আরও সংক্ষিপ্ত এবং পরিষ্কারভাবে লিখতে পারেন। এখানে আমরা CoffeeScript-এ Array এবং Object Comprehensions-এর ব্যবহার বিস্তারিতভাবে আলোচনা করবো।
Array Comprehensions
CoffeeScript-এ Array Comprehensions একটি কোডের এক লাইনেই অ্যারে তৈরি করতে সক্ষম করে, যা ফিল্টার, ম্যাপিং এবং লুপিং কার্যকলাপ একত্রিত করে। এটি JavaScript-এ .map(), .filter() এবং .reduce() মেথডের মতো কাজ করে।
সাধারণ Array Comprehension:
squares = (x * x for x in [1..5])
console.log squares # [1, 4, 9, 16, 25]
এখানে:
[1..5]একটি রেঞ্জ যা ১ থেকে ৫ পর্যন্ত মান তৈরি করে।x * xএক্সপ্রেশনটি প্রতিটি উপাদানে প্রয়োগ হয় এবং তার বর্গ বের করা হয়।
JavaScript-এ কম্পাইল হওয়া কোড:
var squares;
squares = (function() {
var i, ref, results;
results = [];
for (i = 1, ref = 5; i <= ref; i++) {
results.push(i * i);
}
return results;
})();
console.log(squares); // [1, 4, 9, 16, 25]
Array Comprehensions: শর্ত সহ
Array comprehension-এ আপনি সহজেই শর্ত যোগ করতে পারেন, যেমন .filter() মেথডে যা করা যায়। এটি আপনাকে নির্দিষ্ট শর্তে উপাদান নির্বাচন করতে সহায়ক।
উদাহরণ: ৫ এর বড় সংখ্যা নির্বাচন করা
numbers = [1, 2, 3, 6, 7, 8]
greater_than_five = (x for x in numbers when x > 5)
console.log greater_than_five # [6, 7, 8]
এখানে when x > 5 শর্তটি ব্যবহৃত হয়েছে, যার মাধ্যমে কেবলমাত্র ৫ এর বড় সংখ্যাগুলিই নির্বাচন করা হয়েছে।
JavaScript-এ কম্পাইল হওয়া কোড:
var numbers, greater_than_five;
numbers = [1, 2, 3, 6, 7, 8];
greater_than_five = (function() {
var i, len, results;
results = [];
for (i = 0, len = numbers.length; i < len; i++) {
if (numbers[i] > 5) {
results.push(numbers[i]);
}
}
return results;
})();
console.log(greater_than_five); // [6, 7, 8]
Array Comprehensions: Multiple Conditions
CoffeeScript-এ একাধিক শর্ত (Multiple Conditions) ব্যবহার করে Array comprehension তৈরি করা খুবই সহজ।
উদাহরণ: ৫ এর ছোট এবং দ্বীপক্ষের সংখ্যা নির্বাচন করা
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
filtered = (x for x in numbers when x < 5 and x % 2 == 1)
console.log filtered # [1, 3]
এখানে x < 5 and x % 2 == 1 শর্তটি ব্যবহৃত হয়েছে, যার মাধ্যমে ৫ এর ছোট এবং মৌলিক সংখ্যা (অর্থাৎ ১, ৩) নির্বাচন করা হয়েছে।
JavaScript-এ কম্পাইল হওয়া কোড:
var numbers, filtered;
numbers = [1, 2, 3, 4, 5, 6, 7, 8];
filtered = (function() {
var i, len, results;
results = [];
for (i = 0, len = numbers.length; i < len; i++) {
if (numbers[i] < 5 && numbers[i] % 2 === 1) {
results.push(numbers[i]);
}
}
return results;
})();
console.log(filtered); // [1, 3]
Object Comprehensions
Object Comprehensions CoffeeScript-এ অ্যারে কম্প্রিহেনশন এর মতোই কাজ করে, কিন্তু এটি অবজেক্টের কী এবং মানগুলোর উপর ভিত্তি করে নতুন অবজেক্ট তৈরি করতে ব্যবহৃত হয়। এটি আপনাকে কী-ভ্যালু জোড়া নিয়ে নতুন অবজেক্ট তৈরি করতে দেয়।
উদাহরণ: Object Comprehension
person = {name: "Alice", age: 30, city: "New York"}
keys = (key for key, value in person)
console.log keys # ["name", "age", "city"]
এখানে key for key, value in person অবজেক্টের সকল কী-এর নাম সংগ্রহ করছে এবং একটি অ্যারে তৈরি করছে। ফলস্বরূপ, ["name", "age", "city"] একটি অ্যারে তৈরি হয়েছে।
JavaScript-এ কম্পাইল হওয়া কোড:
var person, keys;
person = {name: "Alice", age: 30, city: "New York"};
keys = (function() {
var i, results;
results = [];
for (i in person) {
if (person.hasOwnProperty(i)) {
results.push(i);
}
}
return results;
})();
console.log(keys); // ["name", "age", "city"]
Object Comprehensions: শর্ত সহ
Object Comprehensions-এ শর্তও ব্যবহার করা যেতে পারে, যেমন আপনি শুধু নির্দিষ্ট মানের সাথে মিলে এমন কী-ভ্যালু জোড়া নির্বাচন করতে পারেন।
উদাহরণ: বয়স ৩০-এর বেশি যাদের নাম নির্বাচন করা
people = {Alice: 30, Bob: 25, Charlie: 35}
olderThan30 = (key for key, value in people when value > 30)
console.log olderThan30 # ["Charlie"]
এখানে when value > 30 শর্তটি ব্যবহৃত হয়েছে, যার মাধ্যমে কেবলমাত্র ৩০ বছরের বেশি বয়সের নাম নির্বাচন করা হয়েছে।
JavaScript-এ কম্পাইল হওয়া কোড:
var people, olderThan30;
people = {Alice: 30, Bob: 25, Charlie: 35};
olderThan30 = (function() {
var i, results;
results = [];
for (i in people) {
if (people.hasOwnProperty(i) && people[i] > 30) {
results.push(i);
}
}
return results;
})();
console.log(olderThan30); // ["Charlie"]
সারাংশ
- Array Comprehensions: CoffeeScript-এ Array comprehension অত্যন্ত শক্তিশালী, যা আপনাকে অ্যারে তৈরি এবং উপাদানগুলোকে ফিল্টার, ম্যাপ বা ট্রান্সফর্ম করতে দেয়।
- Object Comprehensions: Object comprehension CoffeeScript-এ অবজেক্টের কী-ভ্যালু জোড়া থেকে নতুন অ্যারে বা অবজেক্ট তৈরি করতে সাহায্য করে।
- শর্তযুক্ত কম্প্রিহেনশন: CoffeeScript-এ শর্ত ব্যবহার করে খুব সহজে আপনার অ্যারে বা অবজেক্টে থাকা নির্দিষ্ট মান নির্বাচন করা যায়।
এই কৌশলগুলি CoffeeScript-এ কোড লেখাকে আরও কার্যকরী এবং সংক্ষিপ্ত করে তোলে, এবং জটিল ডেটা ট্রান্সফর্মেশন এবং ফিল্টারিং সহজ করে দেয়।
Read more