मान लीजिए, हमारे पास ऑब्जेक्ट्स की एक सरणी है जैसे -
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 } ]