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

জাভাস্ক্রিপ্টে নির্দিষ্ট উপাদানগুলো শেষে নিয়ে যাওয়া

ধরুন আমাদের নিচের মত অবজেক্টের একটি অ্যারে আছে:

const arr = [ 
  {flag: true, other: 1}, 
  {flag: true, other: 2}, 
  {flag: false, other: 3}, 
  {flag: true, other: 4}, 
  {flag: true, other: 5}, 
  {flag: true, other: 6}, 
  {flag: false, other: 7} 
];

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অ্যারে নেয় এবং নিচের শর্ত অনুযায়ী সাজাবে:

  • যদি arr.flag === false হয়, তবে মিলিত উপাদানটি অ্যারের শুরুতে চলে যাবে, কিন্তু আগের মিলিত উপাদানগুলোর পরে।

  • যে উপাদানগুলো মিলে না, সেগুলো আসল ক্রমেই থাকবে।

  • উপস্থিতির ক্রম গুরুত্বপূর্ণ।

উপরের অ্যারের জন্য আউটপুট হবে:

const output = [ 
  {flag: false, other: 3}, 
  {flag: false, other: 7}, 
  {flag: true, other: 1}, 
  {flag: true, other: 2}, 
  {flag: true, other: 4}, 
  {flag: true, other: 5}, 
  {flag: true, other: 6} 
];

উদাহরণ

কোড নিচে দেওয়া হলো:

const arr = [ 
  {flag: true, other: 1}, 
  {flag: true, other: 2}, 
  {flag: false, other: 3}, 
  {flag: true, other: 4}, 
  {flag: true, other: 5}, 
  {flag: true, other: 6}, 
  {flag: false, other: 7} 
]; 
const sortByFlag = arr => { 
  const sorter = (a, b) => { 
    if(!a['flag'] && b['flag']){ 
      return -1; 
    }; 
    if(a['flag'] && !b['flag']){ 
      return 1; 
    } 
    return a['other'] - b['other']; 
  } 
  arr.sort(sorter); 
}; 
sortByFlag(arr); 
console.log(arr);

আউটপুট

কনসোলে আউটপুট:

[ 
  { flag: false, other: 3 }, 
  { flag: false, other: 7 }, 
  { flag: true, other: 1 }, 
  { flag: true, other: 2 }, 
  { flag: true, other: 4 }, 
  { flag: true, other: 5 }, 
  { flag: true, other: 6 } 
]
  1. জাভাস্ক্রিপ্ট DOM কী?

  2. জাভাস্ক্রিপ্টে কিউ (Queue) থেকে Peek অপারেশন

  3. জাভাস্ক্রিপ্টে কিউ (Queue-এ) এলিমেন্ট যোগ করা (Enqueue)

  4. জাভাস্ক্রিপ্টে সর্টেড অ্যারে থেকে টার্গেটের নিকটতম দুটি এলিমেন্ট খুঁজে বের করা