สมมติว่าเรามีอาร์เรย์ของวัตถุเช่นนี้ -
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 }];ก่อน>เราจำเป็นต้องเขียนฟังก์ชัน JavaScript ที่รับอาร์เรย์ของอ็อบเจ็กต์ดังกล่าว ฟังก์ชันควรจัดเรียงอาร์เรย์นี้ตามคุณสมบัติที่แตกต่างกันสองประการ -
-
เรียงตามค่า "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 }]