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

জাভাস্ক্রিপ্টে 'next' ও 'previous' প্রোপার্টি দিয়ে সর্টিং (JS কম্পারেটর ফাংশন)


নিচে আমাদের নমুনা অবজেক্টের অ্যারে, প্রতিটি অবজেক্ট একটি মাল্টিপেজ ওয়েবসাইটের পেজ রিপ্রেজেন্ট করে। প্রতিটি অবজেক্টের next প্রোপার্টি (লাস্ট পেজ ছাড়া) অন্য অবজেক্টের আইডি পয়েন্ট করে এবং previous প্রোপার্টি (ফার্স্ট পেজ ছাড়া) পূর্বের অবজেক্টের আইডি পয়েন্ট করে।

এই অবজেক্টগুলো র‍্যান্ডমলি পজিশন করা, আমাদের কাজ সেগুলো সঠিক পজিশনে সর্ট করা:

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" }, ];

সর্ট করা দরকার যাতে previous না থাকা অবজেক্ট আগে আসে, next না থাকা অবজেক্ট শেষে থাকে এবং next/previous সঠিক আইডি পয়েন্ট করে।

দুই ধাপে সমাধান:

ধাপ ১ - পুরো অ্যারে ইটারেট করে আইডি কী ও অবজেক্ট ভ্যালু হিসেবে Map-এ স্টোর করুন, previous না থাকা অবজেক্ট আলাদা ভেরিয়েবলে রাখুন:

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

ধাপ ২ - Map-এর এলিমেন্টগুলোতে লুপ চালিয়ে next অবজেক্টগুলো অ্যাক্সেস করে পুশ করুন শেষ পর্যন্ত:

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 দিয়ে নেক্সট এবং প্রিভিয়াস বাটন তৈরি করার পদ্ধতি