gpt4 book ai didi

javascript - Lodash orderBy 基于属性子计数

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:22:10 25 4
gpt4 key购买 nike

我想根据计数结果对属性和顺序的对象进行计数。

 var users = [
{ 'user': 'fred', 'age': 48 },
{ 'user': 'barney', 'age': 34 }
];

// Sort by `user` in ascending order and by `age` in descending order.
_.orderBy(users, ['user', 'age'], ['asc', 'desc']);

根据文档,这项工作有效,但我想要的是:

var users = [
{ 'user': 'barney', 'age': 34 ,Likes: [{objAA},{objBA}]},
{ 'user': 'fred', 'age': 48 ,Likes: [{objBA},{objBB},{objBC}]},
{ 'user': 'barney', 'age': 34 ,Likes: [{objDA},{objDA}]},
{ 'user': 'barney', 'age': 34 ,Likes: [{objCA}]}
];

orderBy 点赞数

var users = [
{ 'user': 'fred', 'age': 48 ,Likes: [{objBA},{objBB},{objBC}]},
{ 'user': 'barney', 'age': 34 ,Likes: [{objAA},{objBA}]},
{ 'user': 'barney', 'age': 34 ,Likes: [{objDA},{objDA}]},
{ 'user': 'barney', 'age': 34 ,Likes: [{objCA}]}
];

仅使用 loadh 可能吗?

我需要的是类似的东西

_.orderBy(users, ['user.Likes.length'], ['desc']);
_.orderBy(users, ['user.Likes'], ['desc']);

但是上面的代码不起作用但是没有错误

我想使用 orderBy 函数来组合顺序,如

_.orderBy(users, ['user.Likes','user', 'age'], ['desc','asc', 'desc']);

最佳答案

你可以像这样使用函数迭代器

 _.orderBy(users, ['user', function (o) {
return o.likes.length;
}], ["asc", "asc"])

举个例子

var users = [{
'user': 'fred',
'age': 48,
'likes': [{c:1}, {c:2}, {c:3}]
}, {
'user': 'barney',
'age': 34,
'likes': [{c:1}, {c:2}, {c:3}, {c:3}]
}, {
'user': 'ammar',
'age': 25,
'likes': [{c:1}, {c:2}, {c:3}, {c:3}, {c:1}, {c:2}, {c:3}]
}, {
'user': 'boston',
'age': 34,
'likes': [{c:1}, {c:3}]
}, {
'user': 'obama',
'age': 34,
'likes': [{c:1}]
}, {
'user': 'barney',
'age': 34,
'likes': [{c:1}, {c:2}, {c:3}]
}];


document.write(JSON.stringify(_.orderBy(users, ['user', function (o) {
return o.likes.length;
}], ["asc", "asc"]), null, 4))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.6.1/lodash.min.js"></script>

关于javascript - Lodash orderBy 基于属性子计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35970058/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com