সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি নম্বরের অ্যারে arr (যেটিতে ডুপ্লিকেট থাকতে পারে) প্রথম আর্গুমেন্ট এবং একটি ইন্টিজার (যেটি অ্যারেতে আছে) دومা আর্গুমেন্ট হিসেবে নেবে।
ফাংশনটি সেই ইনডেক্স রিটার্ন করবে যেখানে সংখ্যাটি আছে। যেহেতু সংখ্যাটি একাধিকবার থাকতে পারে, তাই র্যান্ডমলি একটি ইন্ডেক্স পিক করে রিটার্ন করতে হবে।
উদাহরণ:
const arr = [5, 3, 6, 7, 3, 4, 2, 3]; const num = 3;
আউটপুট হতে পারে:
const output = 4;
আউটপুট ব্যাখ্যা:
সংখ্যা ৩ ইন্ডেক্স ১, ৪, ৭-তে আছে। র্যান্ডমলি যেকোনো একটি রিটার্ন হবে (এখানে ৪)।
উদাহরণ
কোডটি নিচের মতো (Array প্রোটোটাইপ এক্সটেনশন):
const arr = [5, 3, 6, 7, 3, 4, 2, 3]; const num = 3; Array.prototype.pick = function(target) { const targets = [] this.findTarget(0, this.length, target, targets); return targets[Math.floor(Math.random() * targets.length)]; }; Array.prototype.findTarget = function(start, end, target, targets) { if(start + 1 === end || start === end) { if(this[start] === target) targets.push(start); return; } let j = start + Math.floor((end - start)/2); this.findTarget(start, j, target, targets); this.findTarget(j, end, target, targets); }; console.log(arr.pick(num)); আউটপুট
কনসোলে আউটপুট (র্যান্ডম):
4