কম্পিউটার টিউটোরিয়াল

৯টি জাভাস্ক্রিপ্ট/Node.js वन-লাইনার যা আপনাকে জানা উচিত

যে वेব এবং অ্যাপ্লিকেশনগুলো càng জটিল হচ্ছে, JavaScript এবং Node.js একজন ডেভেলপারের রেপারটোয়ারে সবচেয়ে সাধারণ প্রয়োজনীয়তা হয়ে উঠছে। আপনার কোড-ফু উন্নত করতে এবং আপনি যে হেডএকগুলো সম্মুখীন হন সেগুলো কমাতে, আপনি আপনার কোডের শুরুতে কিছু ফাংশন ডিফাইন করতে পারেন যা সিম্পল টাস্কগুলো দ্রুত সম্পন্ন করে।

মনে রাখবেন JavaScript এবং Java এক নয়। পার্থক্যগুলো এখানে দেখুন।

১. একটি অ্যারেতে মানগুলো শাফল করা

তাঁশের পাতা শাফল করার মতো, আপনি JavaScript-এ এই वन-লাইনারের সাথে একটি অ্যারেতে মানগুলো যতবার চান শাফল করতে পারেন:

const shuffleArray = (arr) => arr.sort(() => 0.5 - Math.random());

তাঁশের পাতার সাদৃশ্য ধরে, এটি কেমন দেখাবে যদি আমি ৫২টি মান শাফল করতে চাই:

let myarray = Array.from({length:52}, (v,k) => k+1); console.log(shuffleArray(myarray));

কোডটি আপনার কনসোল আউটপুটে র‍্যান্ডমলি জামবেল মান দেখাবে।

৯টি জাভাস্ক্রিপ্ট/Node.js वन-লাইনার যা আপনাকে জানা উচিত

২. একটি তারিখ ويкен্ডে নাকি উইকডে পড়েছে কিনা চেক করা

একটি সহজ রিমেইনডার অপারেন্ড ব্যবহার করে, আপনি JavaScript-এ সহজে চেক করতে পারেন কোনো দিন ويকএন্ডে পড়েছে কিনা:

const isWeekend = (date) => date.getDay() % 6 == 0;

আপনি যদি চান এটি পরিবর্তন করে চেক করা যে প্রশ্নগত দিনটি উইকডে পড়েছে কিনা, শুধু শেষ কমপারেশন উল্টে দিন:

const isWeekday = (date) => date.getDay() % 6 !== 0;

নিচের কোডে, আমি চেক করছি আজ কি ويকএন্ডে পড়েছে:

console.log(isWeekend(new Date()));

আলাদা isWeekday বা isWeekend ভেরিয়েবল ডিফাইন করার বদলে, আপনি শুধু NOT অপারেন্ড ব্যবহার করতে পারেন একটি if-then-else স্টেটমেন্ট এক্সপ্রেস করার সময় দুটোর যেকোনো একটি ভেরিয়েবলের জন্য এমনভাবে:

if(!isWeekend(new Date())) { console.log("Today falls on a weekday."); } else { console.log("Today falls on a weekend."); }
৯টি জাভাস্ক্রিপ্ট/Node.js वन-লাইনার যা আপনাকে জানা উচিত

৩. একটি নম্বরকে নির্দিষ্ট দশমিক বিন্দুতে কাটা

আপনি আপনার ব্যবহারকারীদের যে আউটপুট দেন সেটি যতটা সম্ভব সহজ হওয়া উচিত এবং আপনার সাইট বা অ্যাপকে আরও অনাকর্ষণীয় করে তোলে একটি বিশাল গারবলড নম্বর স্ট্রিং দেখানো। একটি নম্বরের কম গুরুত্বপূর্ণ দশমিক পয়েন্ট কাটিয়ে ব্যবহারকারীকে সেইভাবে দেখানোর জন্য, এই চমৎকার ডেফিনিশনটি নিন:

const decimalFormat = (n, places) => ~~(Math.pow(10, places) * n) / Math.pow(10, places);

এটি টেস্ট করার জন্য, আমি একটি অবিশ্বাস্য পরিমাণ দশমিক বিন্দুযুক্ত একটি নমেরিক মান ডিফাইন করি এবং এই কুইক ফাংশন কল করি এটি দুই দশমিক বিন্দুতে কাটাতে।

let deciwow = 299.39542014592 console.log(decimalFormat(deciwow, 2));

ফলাফল কম आँखে চুবে।

৯টি জাভাস্ক্রিপ্ট/Node.js वन-লাইনার যা আপনাকে জানা উচিত

৪. তাপমাত্রা রূপান্তর করা

JavaScript-এ Celsius থেকে Fahrenheit-এ রূপান্তরের কোনো স্ট্যান্ডার্ডাইজড পদ্ধতি নেই, কিন্তু দুটি সিম্পল वन-লাইনারের সাথে আপনি নিজস্ব স্ট্যান্ডার্ড তৈরি করতে পারেন।

Celsius থেকে Fahrenheit-এ:

const cToF = (celsius) => celsius * 9/5 + 32;

এবং Fahrenheit থেকে Celsius-এ:

const fToC = (fahrenheit) => (fahrenheit - 32) * 5/9;

আমার শহরে তাপমাত্রা -২ ডিগ্রি Celsius। Celsius থেকে Fahrenheit রূপান্তর वन-লাইনার ব্যবহার করে আমরা জানতে পারি এটা US-এ কেউ থাকলে কত হয়:

cToF(-2);

এই এক্সপ্রেশন ২৮.৪ ডিগ্রি Fahrenheit দেয়।

৯টি জাভাস্ক্রিপ্ট/Node.js वन-লাইনার যা আপনাকে জানা উচিত

৫. কেউ ডার্ক মোড ব্যবহার করছে কিনা চেক করা

আপনি যদি চান আপনার প্রদর্শিত কন্টেন্ট আপনার কোড ব্যবহারকারী কলার স্কিমের প্রতি সম্মানজনক হয়, JavaScript-এ একটি পদ্ধতি আছে কোনো কেউ ডার্ক মোড ব্যবহার করছে কিনা ডিটেক্ট করার জন্য যাতে আপনি কালার অনুযায়ী অ্যাডজাস্ট করতে পারেন। পদ্ধতিটি লিখতে কিছুটা জটিল, কিন্তু আপনি এই वन-লাইনার দিয়ে সংক্ষিপ্ত করতে পারেন:

const isDarkMode = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;

এই ভেরিয়েবল ব্যবহার করে একটি চেকের উদাহরণ:

if (isDarkMode) { console.log("This screen is in dark mode."); } else { console.log("This screen is not using dark mode."); }

মনে রাখবেন এই কোড শুধু ব্রাউজার-ভিত্তিক JavaScript-এ কাজ করে। Node.js window সাপোর্ট ইমপ্লিমেন্ট করে না।

৬. নম্বরগুলির একটি অ্যারের গড় বের করা

ডেটাসেটের সাথে কাজ করার সময়, JavaScript-এ অ্যারের সাথে একটি হ্যান্ডি ফাংশন থাকে যা আপনাকে একটি নির্দিষ্ট টেবিলের সব মানের সমষ্টি বের করতে এবং এগুলো টেবিলের দৈর্ঘ্য দিয়ে ভাগ করতে দেয়। এটি এক লাইনের কোডে সতিচে করার জন্য, আপনাকে শুধু এটি করতে হবে:

const getAverage = (arr) => arr.reduce((a, b) => a + b, 0) / arr.length;

এখানে আমি একটি ডেটাসেট তৈরি করি এবং এর সব মানের গড় কনসোলের মাধ্যমে বের করি:

let dataset = [2, 14, 88, 204, 1515, 1294, 12, 144]; console.log(getAverage(dataset));

এই কোড ব্যবহার করে, আপনার আউটপুট হওয়া উচিত ৪০৯.১২৫।

৯টি জাভাস্ক্রিপ্ট/Node.js वन-লাইনার যা আপনাকে জানা উচিত

৭. UUID জেনারেট করা

আপনি যদি আপনার অ্যাপ্লিকেশন ব্যবহারকারী থেকে পরিসংখ্যান এবং ডেটা সংগ্রহ করতে চান (উদাহরণস্বরূপ, একটি কুকি জেনারেট করে), এটি করার সবচেয়ে ভালো উপায়ের মধ্যে একটি হল একটি Униভার্সালি ইউনিক আইডেন্টিফায়ার (UUID) জেনারেট করা যাতে আটপটে না হয়। JavaScript-এ RFC4122-কম্প্লায়েন্ট UUID জেনারেট করার কোনো সহজ পদ্ধতি নেই (যদিও Node.js-এ uuid npm প্যাকেজ আছে যা এই ফাংশনালিটি আউট-অফ-দ-বক্স প্রদান করে)।

JS-এ, আপনি আপনার ব্যবহারকারীদের জন্য এই वन-লাইন এক্সপ্রেশন দিয়ে একটি তাজা UUID পপ আউট করতে পারেন:

const genUUID = (a) => (a ? (a ^ ((Math.random() * 16) >> (a / 4))).toString(16) : ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, genUUID));

এখানে, আমি আউটপুট টেস্ট করি:

console.log(genUUID());
৯টি জাভাস্ক্রিপ্ট/Node.js वन-লাইনার যা আপনাকে জানা উচিত

৮. দুটি তারিখের মধ্যে দিনের সংখ্যা বের করা

একটি নির্দিষ্ট মানের বয়স নির্ধারণ করার সময় (যেমন একটি ব্যবহারকারীর অ্যাকাউন্ট), আপনাকে একটি নির্দিষ্ট পয়েন্ট থেকে কত দিন পাস করেছে সেটি ক্যালকুলেট করতে হবে। এখানে একটি সিম্পল वन-লাইনার যা সেটি করে:

const ageDays = (old, recent) => Math.ceil(Math.abs(old - recent) / (1000 * 60 * 60 * 24));

একটি উদাহরণ ইউজ কেসের জন্য, আমরা ভাবি আমরা একটি ব্যবহারকারীর বয়স আসেস করছি যিনি ২৮ ডিসেম্বর, ২০১২ তারিখে তাদের অ্যাকাউন্ট তৈরি করেছেন এবং এই ডিক্লেরেশন ব্যবহার করি সেই তারিখ এবং আজকের মধ্যে দিনের সংখ্যা বের করতে:

console.log(ageDays(new Date('2012-12-28'), new Date()));

লেখার সময়, এটা ৩২৯৮ দিন ফলাফল দিতে পারে।

৯টি জাভাস্ক্রিপ্ট/Node.js वन-লাইনার যা আপনাকে জানা উচিত

৯. একটি নির্দিষ্ট রেঞ্জের মধ্যে র‍্যান্ডম নম্বর জেনারেট করা

কখনও কখনও, শুধু কিছু র‍্যান্ডম নম্বর জেনারেট করলেই চলে না। আপনি শুধু সেটি জেনারেট হওয়ার শর্তগুলো লিমিট করতে চাইতে পারেন। এই वन-লাইনারের সাথে, আপনি একটি নির্দিষ্ট রেঞ্জের মধ্যে নম্বর জেনারেট করবেন:

const rangeRandom = (low, high) => Math.floor(Math.random() * (high - low + 1)) + low;

এটি টেস্ট করা সহজ:

console.log(rangeRandom(400, 20000));
৯টি জাভাস্ক্রিপ্ট/Node.js वन-লাইনার যা আপনাকে জানা উচিত

প্রশ্নোত্তর

১. কুকিতে UUID কেন ব্যবহার করব?

যেহেতু কুকি তাদের প্রকৃতির কারণে আটপটে এবং ব্যবহারকারীর মেশিনে স্পেস দখল করে, তাই এই ইনস্ট্রুমেন্টগুলো ডেটা সংগ্রহের জন্য ব্যবহার করার সময় আপনাকে যতটা সম্ভব দক্ষ এবং নন-ইনভেসিভ হওয়া উচিত। UUID ব্যবহার করে দুইগুণ সুবিধা পাওয়া যায়। প্রথম, এটি ক্লায়েন্ট-ভিত্তিক স্টোরেজে দখল করা স্পেস মিনিমাইজ করে কারণ আইডেন্টিফায়ারটি কেবল ১২৮ বিট দৈর্ঘ্যের। দ্বিতীয়, এটি ব্যবহারকারীর যেকোনো পারসোনাল ডেটার ওপর নির্ভর করে না।

২. Node.js-এ ডার্ক মোড ডিটেক্ট করার সময় "window is not defined" এরর পাচ্ছি। কী করব?

Node.js ক্লায়েন্ট-সাইড মডিউল কল করতে পারে না কারণ এর JavaScript-এর মত ইনট্রিনসিক ক্লায়েন্ট-সার্ভার রিলেশনশিপ নেই। এই আর্টিকেলের ডার্ক মোড ডিটেকশন वन-লাইনার ספেসিফিক্যালি ব্রাউজার-ভিত্তিক JavaScript-এর জন্য।

৩. এই কোড সকল ব্রাউজারের জন্য ইউনিভার্সাল কি?

JavaScript কোড একটি ইন্টারপ্রেটার ব্যবহার করে যা সার্বজনীনভাবে ফাংশন করার কথা। তাত্ত্বিকভাবে এটি সব ব্রাউজারে কাজ করে, কিন্তু তারা আপনার কোড কীভাবে ইন্টারপ্রেট করে সেটি কিছুটা ভিন্ন হতে পারে বিশেষত খুব পুরনো সফটওয়্যারের সাথে। এই আর্টিকেলে এক্সপ্রেস করা সব वन-লাইনারগুলো সব ব্রাউজারে একই ফলাফল রিটার্ন করবে। সতর্ক থাকুন যাইহোক, JavaScript-এ আপনি যেসব ফিচার ব্যবহার করেন সেগুলো Pale Moon, Internet Explorer, বা অর্লি-২০০০s ভার্সন ব্রাউজারগুলোতে কাজ নাও করতে পারে।


  1. iPad vs iPad Air: আপনার সিদ্ধান্তের জন্য ৪টি মূল পার্থক্য

  2. স্পটিফাই প্রিমিয়াম প্ল্যানসমূহ: দাম, সুবিধা এবং বিস্তারিত

  3. স্যামসাং গ্যালкси এস৯: সম্পূর্ণ গাইড এবং মূল ফিচারগুলো

  4. Windows 0x00000031 BSOD (PHASE0_INITIALIZATION_FAILED) সমাধান