ধরা যাক, আমাদের কাছে এমন কিছু বস্তু রয়েছে যাতে সপ্তাহের সাতদিনের আর্দ্রতা সম্পর্কে ডেটা থাকে। ডেটা, যাইহোক, এলোমেলোভাবে অ্যারেতে বসে আছে। সোমবারের জন্য ডেটা প্রথমে আসে, তারপর মঙ্গলবার, বুধবার এবং সবশেষে রবিবারের মতো দিন অনুসারে আমাদের অবজেক্টের অ্যারে সাজানোর কথা৷
নিম্নলিখিত আমাদের অ্যারে -
const weather = [{ day: 'Wednesday', humidity: 60 }, { day: 'Saturday', humidity: 50 }, { day: 'Thursday', humidity: 65 }, { day: 'Monday', humidity: 40 }, { day: 'Sunday', humidity: 35 }, { day: 'Friday', humidity: 80 }, { day: 'Tuesday', humidity: 45 }];
এই সমস্যার মূল হল আমাদের ম্যাপ অবজেক্ট তৈরি করা যা সপ্তাহের নির্দিষ্ট দিনগুলিকে তাদের সঠিক সূচকে ম্যাপ করে। এটা এরকম কিছু দেখতে হবে -
const map = { 'Monday': 1, 'Tuesday': 2, 'Wednesday': 3, 'Thursday': 4, 'Friday': 5, 'Saturday': 6, 'Sunday': 7 };
এখন এই স্পষ্ট করে, আমরা Array.prototype.sort() পদ্ধতিটি একটি কাস্টমকলব্যাকে পাসিং প্রয়োগ করতে পারি যা ম্যাপে তাদের সূচী অনুসারে বস্তুকে স্থান দেয়।
এর জন্য সম্পূর্ণ কোড হবে −
উদাহরণ
const weather = [{ day: 'Wednesday', humidity: 60 }, { day: 'Saturday', humidity: 50 }, { day: 'Thursday', humidity: 65 }, { day: 'Monday', humidity: 40 }, { day: 'Sunday', humidity: 35 }, { day: 'Friday', humidity: 80 }, { day: 'Tuesday', humidity: 45 }]; const map = { 'Monday': 1,'Tuesday': 2,'Wednesday': 3,'Thursday': 4,'Friday': 5,'Saturday': 6, 'Sunday': 7 }; weather.sort((a, b) => { return map[a.day] - map[b.day]; }); console.log(weather);
আউটপুট
এই কোডের আউটপুট হবে −
[ { day: 'Monday', humidity: 40 }, { day: 'Tuesday', humidity: 45 }, { day: 'Wednesday', humidity: 60 }, { day: 'Thursday', humidity: 65 }, { day: 'Friday', humidity: 80 }, { day: 'Saturday', humidity: 50 }, { day: 'Sunday', humidity: 35 } ]