কম্পিউটার

প্রথম n পদ জাভাস্ক্রিপ্টের অগ্রগতিতে সদৃশ উপাদান খুঁজুন


ধরা যাক, আমাদেরকে সংখ্যার একটি অ্যারে দেওয়া হয়েছে যেখানে প্রথম n প্রাকৃতিক সংখ্যা রয়েছে, কিন্তু অ্যারেতে একটি উপাদান দুবার উপস্থিত হয়, তাই মোট উপাদানের সংখ্যা n+1। আমাদের কাজ হল অ্যারেতে থাকা ফাংশন লেখা এবং রৈখিক সময়ে দুবার প্রদর্শিত সংখ্যাটি ফেরত দেওয়া৷

পদ্ধতি 1:Array.prototype.reduce() ব্যবহার করা

এটি একটি বিট কৌশলী পদ্ধতি কিন্তু লেখা কোডের ক্ষেত্রে সবচেয়ে সংকুচিত। প্রথমে, এর জন্য কোডটি দেখুন -

const arr = [1,4,8,5,6,7,9,2,3,7];
const duplicate = a => a.reduce((acc, val, ind) => val+acc-
(ind+1))+a.length-1;
console.log(duplicate(arr));

এখানে আমরা রিডুড ফাংশন ব্যবহার করেছি, এর কলব্যাক, যেটি অ্যারের প্রতিটি উপাদানের জন্য একবার কাজ করে, আমাদের ক্ষেত্রে তিনটি আর্গুমেন্ট নিচ্ছে,

  • acc → accumulator, আগের পাসে ফেরত দেওয়া মান, এবং
  • val → বর্তমান উপাদান মান,
  • ind → বর্তমান উপাদানের সূচক

এখন, এই অ্যারেতে আমাদের কোড প্রয়োগ করা যাক −

[ 2, 3, 1, 2]

যেহেতু এই অ্যারের দৈর্ঘ্য 4, কলব্যাক ফাংশনের মোট 4টি পাস থাকা উচিত, কিন্তু যেহেতু আমরা reduce() ফাংশনে প্রাথমিক মান যুক্তি প্রদান করিনি, তাই পুনরাবৃত্তিগুলি সূচী 1 থেকে শুরু হবে এবং সঞ্চয়কারীকে প্রাথমিকভাবে মানের সাথে বরাদ্দ করা হবে zeroth সূচক, তাই মোট 3 পাস হবে।

প্রথম পাস

acc = 2, val = 3, ind = 1
return value = 2+3 - (1+1) = 3

দ্বিতীয় পাস

acc = 3, val = 1, ind = 2
return value = 3+1 - (2+1) = 1

তৃতীয় পাস

acc = 1, val = 2, ind = 3
return value = 1+2 - (3+1) = -1

অ্যারে শেষ

তাই -1 অ্যারে থেকে ফিরে আসে এবং তারপর

-1 + (4-1) = -1 + 3 = 2

ডুপ্লিকেট() ফাংশন থেকে ফিরে আসে, যা আসলে সঠিক ফলাফল।

পদ্ধতি 2:Array.prototype.forEach()

এই পদ্ধতিতে, আমরা অ্যারের উপর পুনরাবৃত্তি করি, এর যোগফল পাই এবং এটি থেকে প্রথম (n-1) স্বাভাবিক সংখ্যার যোগফল বিয়োগ করি, যেখানে n হল অ্যারের দৈর্ঘ্য, যা বাকি থাকে তা হল সংখ্যা যা দুইবার পুনরাবৃত্তি হয়, তাই আমরা ফিরে আসি। এটা।

উদাহরণ

const arr = [1,4,8,5,6,7,9,2,3,7];
const duplicate = a => {
   let sum = 0;
   const { length: n } = a;
   a.forEach(num => sum += num);
   return sum - ((n*(n-1))/2);
}
console.log(duplicate(arr));

আউটপুট

কনসোলে আউটপুট হবে −

7

  1. জাভাস্ক্রিপ্ট অ্যারেতে ডুপ্লিকেট মানগুলি কীভাবে খুঁজে পাবেন?

  2. জাভাস্ক্রিপ্টে একটি অ্যারের সর্বনিম্ন/সর্বোচ্চ উপাদান কীভাবে খুঁজে পাবেন?

  3. একটি জাভাস্ক্রিপ্ট অ্যারে প্রথম উপাদান এবং শেষ উপাদান?

  4. কীভাবে জাভাস্ক্রিপ্ট অ্যারেতে একটি উপাদান অনুসন্ধান করবেন?