मान लीजिए, हमारे पास ऑब्जेक्ट्स की एक सरणी है जिसमें ऑब्जेक्ट्स की नेस्टेड सरणी है जैसे -
const arr = [ { name: "Cat1", elements : [ { name: name, id: id } ] }, { name: "Cat2", elements : [ { name: name, id: id }, { name: name, id: id }, { name: name, id: id } ] }, { name: "Cat3", elements : [ { name: name, id: id }, { name: name, id: id } ] } ];हमें एक JavaScript फ़ंक्शन लिखना है जो ऐसी एक सरणी लेता है। फ़ंक्शन को इस ऑब्जेक्ट्स की सरणी को सॉर्ट करना चाहिए।
जिन ऑब्जेक्ट्स में "elements" सरणी गुण में अधिक संख्या में ऑब्जेक्ट्स हैं, उन्हें उच्च रैंक दिया जाना चाहिए।
इसलिए, सॉर्ट करने के बाद सरणी इस तरह दिखनी चाहिए -
const output = [ { name: "Cat2", elements : [ { name: name, id: id }, { name: name, id: id }, { name: name, id: id } ] }, { name: "Cat3", elements : [ { name: name, id: id }, { name: name, id: id } ] }, { name: "Cat1", elements : [ { name: name, id: id } ] } ];उदाहरण
इसके लिए कोड होगा -
const arr = [ { "name": "Cat1", elements : [ { "name": "name", "id": "id" } ] }, { "name": "Cat2", elements : [ { "name": "name", "id": "id" }, { "name": "name", "id": "id" }, { "name": "name", "id": "id" } ] }, { "name": "Cat3", elements : [ { "name": "name", "id": "id" }, { "name": "name", "id": "id" } ] } ]; const sorter = (a, b) => { if(a.elements.length > b.elements.length) { return -1; } else { return 1; } } arr.sort(sorter); console.log(JSON.stringify(arr, undefined, 4));आउटपुट
कंसोल में आउटपुट होगा -
[ { name": "Cat2", "elements": [ { "name": "name", "id": "id" }, { "name": "name", "id": "id" }, { "name": "name", "id": "id" } ] }, { "name": "Cat3", "elements": [ { "name": "name", "id": "id" }, { "name": "name", "id": "id" } ] }, { "name": "Cat1", "elements": [ { "name": "name", "id": "id" } ] } ]