কম্পিউটার

'পরবর্তী' এবং 'আগের' বৈশিষ্ট্য অনুসারে বাছাই করা হচ্ছে (জেএস তুলনাকারী ফাংশন)


এখানে আমাদের অবজেক্টের নমুনা অ্যারে রয়েছে, প্রতিটি অবজেক্টকে একটি মাল্টিপেজওয়েবসাইটের কিছু পৃষ্ঠার প্রতিনিধিত্বকারী হিসাবে বিবেচনা করুন, প্রতিটি বস্তুর একটি পরবর্তী বৈশিষ্ট্য রয়েছে (যদি না এটি শেষ পৃষ্ঠাকে প্রতিনিধিত্ব করে) যা অন্য বস্তুর কিছু আইডি এবং একটি পূর্ববর্তী সম্পত্তি নির্দেশ করে (যদি না এটি প্রথমটি উপস্থাপন করে। পৃষ্ঠা) যা তার আগের বস্তুর কিছু আইডি নির্দেশ করে।

এই অবজেক্টগুলি এখনই এলোমেলোভাবে অবস্থান করছে, আমাদের কাজ হল তাদের সঠিক অবস্থানে সাজানো -

let arr = [
   { id: "1325asdfasdasd", next: "5345341fgdfgdd", previous:"545234123fsdfd" },
   { id: "das987as9dya8s", next: "3j12k3b1231jkj" },
   { id: "89ad8sasds9d8s", previous: "1j3b12k3jbasdd" },
   { id: "5345341fgdfgdd", next: "1j3b12k3jbasdd", previous:"1325asdfasdasd" },
   { id: "1423123123asfd", next: "545234123fsdfd", previous:"3j12k3b1231jkj" },
   { id: "1j3b12k3jbasdd", next: "89ad8sasds9d8s", previous:"5345341fgdfgdd" },
   { id: "3j12k3b1231jkj", next: "1423123123asfd", previous:"das987as9dya8s" },
   { id: "545234123fsdfd", next: "1325asdfasdasd", previous:"1423123123asfd" },
];

আমাদের এটি বাছাই করতে হবে যাতে পূর্ববর্তী কোন বস্তুগুলি প্রথমে আসে এবং একটি পরবর্তী আসেলাস্ট ছাড়াই এবং পরবর্তী এবং পূর্ববর্তী সঠিক আইডিগুলি নির্দেশ করে

আমরা দুটি ধাপে এই সমস্যাটি মোকাবেলা করব -

ধাপ 1 − আমরা পুরো অ্যারেতে পুনরাবৃত্তি করি, আইডিটিকে কী হিসাবে সংরক্ষণ করি এবং একটি মানচিত্রে মান হিসাবে অবজেক্ট সংরক্ষণ করি এবং একটি পৃথক পরিবর্তনশীলে পূর্ববর্তী কোনো বস্তু ছাড়াই সংরক্ষণ করি −

const objectMap = new Map();
let firstObject;
const sortedArray = [];
for(const obj of arr){
   objectMap.set(obj.id, obj);
   if(!obj.previous){
      firstObject = obj;
   }
}

ধাপ 2 − আমরা মানচিত্রের উপাদানগুলির উপর একটি লুপ শুরু করি এবং প্রতিটি সদস্যের পরবর্তী বস্তুগুলি অ্যাক্সেস করা এবং পুশ করা শুরু করি যখন আমরা শেষ পর্যন্ত পৌঁছাই −

for(let start = firstObject; start; start = objectMap.get(start.next)){
   sortedArray.push(start);
};
console.log(sortedArray);

এখন আউটপুট −

সহ সম্পূর্ণ উদাহরণ দেখি

উদাহরণ

let arr = [
   { id: "1325asdfasdasd", next: "5345341fgdfgdd", previous:"545234123fsdfd" },
   { id: "das987as9dya8s", next: "3j12k3b1231jkj" },
   { id: "89ad8sasds9d8s", previous: "1j3b12k3jbasdd" },
   { id: "5345341fgdfgdd", next: "1j3b12k3jbasdd", previous:"1325asdfasdasd" },
   { id: "1423123123asfd", next: "545234123fsdfd", previous:"3j12k3b1231jkj" },
   { id: "1j3b12k3jbasdd", next: "89ad8sasds9d8s", previous:"5345341fgdfgdd" },
   { id: "3j12k3b1231jkj", next: "1423123123asfd", previous:"das987as9dya8s" },
   { id: "545234123fsdfd", next: "1325asdfasdasd", previous:"1423123123asfd" },
];
const objectMap = new Map();
let firstObject;
const sortedArray = [];
for(const obj of arr){
   objectMap.set(obj.id, obj);
   if(!obj.previous){
      firstObject = obj;
   }
}
for(let start = firstObject; start; start = objectMap.get(start.next)){
   sortedArray.push(start);
};
console.log(sortedArray);

আউটপুট

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

[
   { id: 'das987as9dya8s', next: '3j12k3b1231jkj' },
   {
      id: '3j12k3b1231jkj',
      next: '1423123123asfd',
      previous: 'das987as9dya8s'
   },
{
   id: '1423123123asfd',
   next: '545234123fsdfd',
   previous: '3j12k3b1231jkj'
},
{
   id: '545234123fsdfd',
   next: '1325asdfasdasd',
   previous: '1423123123asfd'
},
{
   id: '1325asdfasdasd',
   next: '5345341fgdfgdd',
   previous: '545234123fsdfd'
},
{
   id: '5345341fgdfgdd',
   next: '1j3b12k3jbasdd',
   previous: '1325asdfasdasd'
},
{
   id: '1j3b12k3jbasdd',
   next: '89ad8sasds9d8s',
   previous: '5345341fgdfgdd'
},
{    id: '89ad8sasds9d8s', previous: '1j3b12k3jbasdd' }
]

  1. কিভাবে একটি ফাংশন এবং পদ্ধতি হিসাবে একটি ফাংশন আহ্বান করতে হয়?

  2. জাভাস্ক্রিপ্টে ডিস্ট্রাকচারিং এবং ফাংশন প্যারামিটার

  3. অ্যারের বৈশিষ্ট্যের দৈর্ঘ্য অনুসারে জাভাস্ক্রিপ্ট অবজেক্ট বাছাই করা।

  4. কিভাবে CSS দিয়ে পরবর্তী এবং আগের বোতাম তৈরি করবেন?