javascript - 按较低级别的项目对多层对象进行排序
问题描述
我有一个看起来像这样的对象
[{group: 'Group-B', items[{ count : 3, item : 'item-A' }]},
{group: 'Group-B', items[{ count : 8, item : 'item-C' }]},
{group: 'Group-A', items[{ count : 4, item : 'item-H' }]},
{group: 'Group-C', items[{ count : 2, item : 'item-F' }]}
]
结果应为: desc by count
[{group: 'Group-B', items[{ count : 8, item : 'item-C' }]},
{group: 'Group-A', items[{ count : 4, item : 'item-H' }]},
{group: 'Group-B', items[{ count : 3, item : 'item-A' }]},
{group: 'Group-C', items[{ count : 2, item : 'item-F' }]}
]
我需要对整个对象进行排序count
。
我一直在看lodash
,但我无法弄清楚如何做到这一点。
解决方案
希望能帮助到你。如果您不想创建原始数组的副本,可以删除 .slice() 函数。
let obj = [
{group: 'Group-B', items: [{count: 3, item: 'item-A'}]},
{group: 'Group-B', items: [{count: 8, item: 'item-C'}]},
{group: 'Group-A', items: [{count: 4, item: 'item-H'}]},
{group: 'Group-C', items: [{count: 2, item: 'item-F'}]}
]
console.log(obj)
let sorted = obj.slice().sort((a,b) => {
if(a.items[0].count < b.items[0].count){
return -1
}
if(a.items[0].count > b.items[0].count){
return 1
}
else
return 0
});
console.log(sorted)
推荐阅读
- python - 如何在 Dataframe 中找到最长的 NaN 序列?
- javascript - MongoClient GetData 例程的 NodeJS ASync 调用
- c++ - (Unreal) VS 2019 找不到 GameFramework 文件夹,还有很多其他错误
- javascript - NodeJS 服务器外部访问
- flutter - Flutter 图像生成器回调问题
- reactjs - AuthError - 错误:未正确配置 Amplify
- python - Django Plotly Dash
- javascript - 将二维数组中的不同值推送到唯一数组
- sql-server - 无法删除非对称密钥,因为有一个登录映射到它
- java - 有没有办法使用带有继承的记录?