মান লিজিয়ে, আমাদের কাছে একটি নম্বরের অ্যারে আছে যেটিতে ০ এবং ১ রয়েছে:
const arr = [0, 1, 0, 1];
আমাদের একটি অ্যারে ফাংশন লিখতে হবে, যেনাম toBinary(), যা সেটি যেটির সাথে ব্যবহার করা হয়েছে তার করেসপন্ডিং বাইনারি রিটার্ন করবে।
উদাহরণস্বরূপ - যদি অ্যারেটি হয়:
const arr = [1, 0, 1, 1];
তবে আউটপুট হবে ১১ কারণ বাইনারি ১০১১-এর ডেসিমেল রিপ্রেজেন্টেশন ১১।
তাহলে, এই ফাংশনের কোড লিখি।
পদ্ধতি ১: লাইব্রেরি মেথড ব্যবহার করে
JavaScript-এ একটি মেথড রয়েছে parseInt(), যা দুটি আর্গুমেন্ট নেয় - প্রথমটি একটি স্ট্রিং এবং দ্বিতীয়টি একটি নম্বর যেটি একটি নির্দিষ্ট বেস রিপ্রেজেন্ট করে, যেন ১০ ডেসিমেল বেসের জন্য, ২ বাইনারির জন্য। এই ফাংশন স্ট্রিং আর্গুমেন্টটি পার্স করে এবং নির্দিষ্ট রেডিক্স (বেস) এর ইন্টিজার রিটার্ন করে।
আমাদের কেসে, বাইনারি অ্যারেকে ডেসিমেলে রূপান্তর করতে আমরা parseInt() ফাংশন هكذا ব্যবহার করতে পারি:
const arr = [1, 0, 1, 1]; const parseArray = arr => { const binaryString = arr.join(""); return parseInt(binaryString, 2); }; console.log(parseArray(arr));পদ্ধতি ২: অ্যারে রিডিউস করে
এই পদ্ধতিতে আমরা বাইনারি অ্যারেতে ইটারেট করব এবং করেসপন্ডিং বাইনারি নম্বরগুলো বেস করে একটি ডেসিমেল নির্মাণ করব। আমরা লেফট শিফট অপারেটর (<<) ব্যবহার করব একিউমুলেটেড ভ্যালুকে এক বিট বামে শিফট করার জন্য প্রতিবার এবং রিটার্ন করব শিফটেড একিউমুলেটেড ভ্যালু এবং বর্তমান ভ্যালুর বিটওয়াইজ OR (|)।
বিটওয়াইজ অপারেটর ব্যবহার করে কোডটি:
উদাহরণ
const arr = [1, 0, 1, 1]; const parseArray = arr => { return arr.reduce((acc, val) => { return (acc << 1) | val; }); }; console.log(parseArray(arr));আউটপুট
কনসোলে আউটপুট হবে:
11