gpt4 book ai didi

javascript - 在对象数组中找到博客点赞最多的人

转载 作者:数据小太阳 更新时间:2023-10-29 05:44:59 26 4
gpt4 key购买 nike

我有一个博客对象数组,如何找到总点赞数最高的作者?

我曾尝试使用 for 循环并将具有不同作者的每个对象推送到一个单独的数组中,然后计算数组中喜欢的总数。我很难将对象相互比较,并且不断为同一作者获取多个数组。

const blogs = [
{
title: 'First',
author: 'Jane',
likes: 4,
},
{
title: 'Second',
author: 'Joe',
likes: 1,
},
{
title: 'Third',
author: 'Jane',
likes: 7,
},
{
title: 'Fourth',
author: 'Jack',
likes: 1,
},
{
title: 'Fifth',
author: 'Joe',
likes: 5,
}
]

作者的数量没有限制,在这个例子中,结果应该是这样的:

{
author: 'Jane',
likes: 11,
}

最佳答案

您可以使用 reduce,将每个作者映射到对象上并添加它,就像

const blogs = [ { title: 'First', author: 'Jane', likes: 4, }, { title: 'Second', author: 'Joe', likes: 1, }, { title: 'Third', author: 'Jane', likes: 7, }, { title: 'Fourth', author: 'Jack', likes: 1, }, { title: 'Fourth', author: 'Joe', likes: 5, } ]

let authorLikes = blogs.reduce((op, {author, likes}) => {
op[author] = op[author] || 0
op[author] += likes
return op
},{})

console.log(authorLikes)

您可以进一步扩展它以获得最多的赞

// to find most likes
let mostLikes = Object.keys(authorLikes).sort((a,b)=> authorLikes[b] - authorLikes[a])[0]

console.log(mostLikes, authorLikes[mostLikes])

关于javascript - 在对象数组中找到博客点赞最多的人,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56995574/

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