[英]Sort array of objects by nested object property
I have an array of objects like so:我有一个像这样的对象数组:
[
{
"id": "07bf4920-55f4-42b4-9413-a0a9246d3e1f",
"flatData": {
"name": "Business Unit Commendations",
"shortIntro": "Recognition for your valued contributions to your business unit.",
"slug": "business-unit-commendations",
}
},
{
"id": "e85fe64e-ac34-45fd-aff1-d192c9a0b6e9",
"flatData": {
"name": "Pension Scheme",
"shortIntro": "Pension scheme for all.",
"slug": "pension-scheme",
}
},
{
"id": "1769fb14-5daa-42d3-bdb5-5c7e8462952c",
"flatData": {
"name": "On-Site Nursery and Childcare",
"shortIntro": "Sponsored childcare support schemes available at some MOD sites.",
"slug": "on-site-nursery-and-childcare",
}
}
]
I wish to order them alphabetically by the name property in flatData.我希望按 flatData 中的 name 属性按字母顺序排列它们。 A lot of the questions I've found dont have nested objects in them so the answers don't fit.我发现的很多问题都没有嵌套对象,所以答案不合适。
Expected outcome:预期结果:
[
{
"id": "07bf4920-55f4-42b4-9413-a0a9246d3e1f",
"flatData": {
"name": "Business Unit Commendations",
"shortIntro": "Recognition for your valued contributions to your business unit.",
"slug": "business-unit-commendations",
}
},
{
"id": "1769fb14-5daa-42d3-bdb5-5c7e8462952c",
"flatData": {
"name": "On-Site Nursery and Childcare",
"shortIntro": "Sponsored childcare support schemes available at some MOD sites.",
"slug": "on-site-nursery-and-childcare",
}
},
{
"id": "e85fe64e-ac34-45fd-aff1-d192c9a0b6e9",
"flatData": {
"name": "Pension Scheme",
"shortIntro": "Pension scheme for all.",
"slug": "pension-scheme",
}
},
]
This can be done using Array.prototype.sort
function.这可以使用Array.prototype.sort
function 来完成。
Inside sort
function, compare the values using String.localeCompare
function.在sort
function 内部,使用String.localeCompare
function 比较值。
const array = [ { "id": "07bf4920-55f4-42b4-9413-a0a9246d3e1f", "flatData": { "name": "Business Unit Commendations", "shortIntro": "Recognition for your valued contributions to your business unit.", "slug": "business-unit-commendations", } }, { "id": "e85fe64e-ac34-45fd-aff1-d192c9a0b6e9", "flatData": { "name": "Pension Scheme", "shortIntro": "Pension scheme for all.", "slug": "pension-scheme", } }, { "id": "1769fb14-5daa-42d3-bdb5-5c7e8462952c", "flatData": { "name": "On-Site Nursery and Childcare", "shortIntro": "Sponsored childcare support schemes available at some MOD sites.", "slug": "on-site-nursery-and-childcare", } } ] const sorted = array.sort((a, b) => a.flatData.name.localeCompare(b.flatData.name)); console.log(sorted);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.