কম্পিউটার

জাভাস্ক্রিপ্টে একটি সাজানো ব্যবধানে একটি নতুন ব্যবধান ঢোকানো


এই প্রশ্নের উদ্দেশ্যে, আমরা একটি ব্যবধানকে দুটি সংখ্যার অ্যারে হিসাবে সংজ্ঞায়িত করি যেখানে প্রথম সংখ্যাটি সর্বদা দ্বিতীয় সংখ্যার চেয়ে ছোট হয়৷

যেমন −

[4, 6], [2, 3], [6, 8], [2, 7], [1, 8] are all examples of valid intervals.

ধরুন, আমাদের কাছে ব্যবধানের একটি অ্যারে রয়েছে যা তাদের শুরুর সময় অনুসারে সাজানো হয়েছে (প্রতিটি ব্যবধানের প্রথম উপাদান)।

অ্যারের মধ্যে ব্যবধানগুলি অ-ওভারল্যাপিং যার মানে হল যে কোনও দুটি নির্বিচারে সন্নিহিত অন্তরের জন্য,

[m, n], [x, y]
m < n < x < y

অতএব, ব্যবধানের এই বিন্যাসের অনুরূপ একটি উদাহরণ −

হতে পারে
const arr = [[ 2, 4], [5, 7], [9, 10], [13, 17]];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্টের মতো একটি অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসাবে একটি একক ব্যবধান গ্রহণ করে৷

তারপরে ফাংশনটি অ্যারের সঠিক অবস্থানে ব্যবধানটি সন্নিবেশ করা উচিত, অ্যারের অওভারল্যাপিং বৈশিষ্ট্য বজায় রাখা উচিত।

প্রয়োজনে আমরা অ্যারের মধ্যে দুই বা ততোধিক ব্যবধান একত্রিত করতে পারি যাতে অ্যারের ব্যবধানগুলি অ-ওভারল্যাপিং থাকে৷

উদাহরণ স্বরূপ, যদি উপরোক্ত ব্যবধানের বিন্যাসের জন্য, আমাদের যে ব্যবধানটি সন্নিবেশ করতে হবে তা হল [6, 13] তাহলে আউটপুটটি দেখতে হবে −

const output = [[2, 4], [5, 17]];

উদাহরণ

নিম্নলিখিত কোড -

const arr = [[2, 4], [5, 7], [9, 10], [13, 17]];
const interval = [6, 13];
const insertWithin = (arr = [], interval = []) => {
   const res = [];
   let ind = 0;
   while (arr[ind] && arr[ind][1] < interval[0]) {
      res.push(arr[ind]);
      ++ind;
   };
   let start = interval[0];
   let end = interval[1];
   while (arr[ind] && arr[ind][0] <= interval[1]) {
      start = Math.min(start, arr[ind][0]);
      end = Math.max(end, arr[ind][1]);
      ++ind;
   }
   res.push([start, end]);
   while (arr[ind]) {
      res.push(arr[ind]);
      ++ind;
   }
   return res;
};
console.log(insertWithin(arr, interval));

আউটপুট

নিম্নোক্ত কনসোল আউটপুট -

[[2, 4], [5, 17]]

  1. JavaScript array.values()

  2. জাভাস্ক্রিপ্টে array.flatMap()

  3. নতুন কীওয়ার্ড দিয়ে একটি জাভাস্ক্রিপ্ট অ্যারে তৈরি করা হচ্ছে।

  4. নতুন অ্যারেতে জাভাস্ক্রিপ্ট অবজেক্ট ফরম্যাটিং