मान लीजिए, हमारे पास वस्तुओं की एक सरणी है जिसमें इस तरह की वस्तुओं की नेस्टेड सरणी है -
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 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"
}
]
}
]