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

জাভাস্ক্রিপ্টে রেফারেন্স অ্যারে অনুযায়ী অন্য অ্যারে মডিফাই করা


সমস্যা বিবরণ

একটি রেফারেন্স অ্যারে (фраза) এবং অন্য একটি অ্যারে দেওয়া আছে। রেফারেন্স অ্যারের এলিমেন্টগুলো অন্য অ্যারেতে একসাথে পাওয়া গেলে সেগুলো জয়ন করে একটি এলিমেন্ট বানাতে হবে।

রেফারেন্স: ["your", "majesty", "they", "are", "ready"]

আন্য অ্যারে: ["your", "they are"]

আউটপুট: ["your", "majesty", "they are", "ready"]

সমাধান

const reference = ["your", "majesty", "they", "are", "ready"];
const another = ["your", "they are"];

const joinByReference = (reference = [], another = []) => {
  const res = [];
  const filtered = another.filter(a => a.split(" ").length > 1);
  
  while (filtered.length) {
    let anoWords = filtered.shift();
    let len = anoWords.split(" ").length;
    
    while (reference.length > len) {
      let refWords = reference.slice(0, len).join(" ");
      if (refWords == anoWords) {
        res.push(refWords);
        reference = reference.slice(len, reference.length);
        break;
      }
      res.push(reference.shift());
    }
  }
  return [...res, ...reference];
};

console.log(joinByReference(reference, another));

আউটপুট

[ 'your', 'majesty', 'they are', 'ready' ]

ব্যাখ্যা

  • another থেকে মাল্টি-ওয়ার্ড ফ্রেজ ফিল্টার করা হয়েছে।
  • রেফারেন্স অ্যারে থেকে স্লাইস लेकर ফ্রেজ ম্যাচ করা হয়েছে।
  • ম্যাচ পাওয়া গেলে জয়ন করা ফ্রেজ পুশ করা হয়েছে এবং রেফারেন্স থেকে স্লাইস রিমুভ করা হয়েছে।
  1. জাভাস্ক্রিপ্ট Array shift() মেথড

  2. জাভাস্ক্রিপ্ট Array reverse() মেথড

  3. জাভাস্ক্রিপ্টে অ্যারে অনুযায়ী স্ট্রিং শাফল করা

  4. জাভাস্ক্রিপ্টে অ্যারে অনুযায়ী স্ট্রিংয়ের অক্ষর শিফ্ট করা