মান লজিয়ে, আমাদের নিচের মতো একটি অবজেক্টের অ্যারে আছে −
const arr = [
{ resVal: "25FA15", resFlow: 49, resName: "Rendimiento Tri-Seal Completo", resPhoto: "Tri-Sealseries.png", resHP: 1.5 },
{ resVal: "25FA2", resFlow: 52, resName: "Rendimiento Tri-Seal Completo", resPhoto: "Tri-Sealseries.png", resHP: 2 },
{ resVal: "45FA2", resFlow: 53, resName: "Rendimiento Hi-Cap Completo", resPhoto: "HighCapseries.png", resHP: 2 },
{ resVal: "35FA2", resFlow: 59, resName: "Rendimiento Hi-Cap Completo", resPhoto: "HighCapseries.png", resHP: 2 }
];
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা এমন একটি অবজেক্টের অ্যারে নেয়। ফাংশনটি এই অ্যারে-কে দুটি ভিন্ন প্রপার্টি অনুযায়ী সর্ট করবে −
- উচ্চতর "resFlow" মান দিয়ে সর্ট,
- কিন্তু নিম্নতম "resHP" মান দিয়ে।
অ্যাপ্রোচ
নির্দিষ্ট ক্রমে কী এবং তাদের সর্ট অর্ডারের জন্য চেইন্ড অ্যাপ্রোচ ব্যবহার করা হয়েছে।
অ্যারে-টি নিচের প্রপার্টিগুলো অনুযায়ী সর্ট হয় −
- resHP, आरোহী ক্রমে এবং
- resFlow, অবরোহী ক্রমে।
এটি ডেল্টা ক্যালকুলেট করে কাজ করে যা দুটি অবজেক্টের সম্পর্ক প্রতিফলিত করে। যদি মান শূন্য হয়, তবে দুটি মান সমান এবং পরবর্তী ডেল্টা ক্যালকুলেট করে রিটার্ন করা হয়।
উদাহরণ
এটির কোড হবে −
const arr = [
{ resVal: "25FA15", resFlow: 49, resName: "Rendimiento Tri-Seal Completo", resPhoto: "Tri-Sealseries.png", resHP: 1.5 },
{ resVal: "25FA2", resFlow: 52, resName: "Rendimiento Tri-Seal Completo", resPhoto: "Tri-Sealseries.png", resHP: 2 },
{ resVal: "45FA2", resFlow: 53, resName: "Rendimiento Hi-Cap Completo", resPhoto: "HighCapseries.png", resHP: 2 },
{ resVal: "35FA2", resFlow: 59, resName: "Rendimiento Hi-Cap Completo", resPhoto: "HighCapseries.png", resHP: 2 }
];
const sortByTwo = (arr = []) => {
arr.sort((a, b) => {
return a.resHP - b.resHP || b.resFlow - a.resFlow;
});
};
sortByTwo(arr);
console.log(arr);
আউটপুট
কনসোলে আউটপুট হবে −
[
{
resVal: '25FA15',
resFlow: 49,
resName: 'Rendimiento Tri-Seal Completo',
resPhoto: 'Tri-Sealseries.png',
resHP: 1.5
},
{
resVal: '35FA2',
resFlow: 59,
resName: 'Rendimiento Hi-Cap Completo',
resPhoto: 'HighCapseries.png',
resHP: 2
},
{
resVal: '45FA2',
resFlow: 53,
resName: 'Rendimiento Hi-Cap Completo',
resPhoto: 'HighCapseries.png',
resHP: 2
},
{
resVal: '25FA2',
resFlow: 52,
resName: 'Rendimiento Tri-Seal Completo',
resPhoto: 'Tri-Sealseries.png',
resHP: 2
}
]