const mostLikes = (blogs) => {
if (!blogs.length) {
return 0
}
const distinctAuthors = [...new Set(blogs.map((blog) => blog.author))]
const summer = (prev, comp) => prev.likes + comp.likes
console.log(distinctAuthors)
const dummyAuth = {
author: 'hmm',
likes: 0,
}
const authorsWithLikes = distinctAuthors.map((author) => ({
author,
likes: blogs.filter((n) => n.author === author).reduce(summer, dummyAuth),
}))
const reducer = (prev, comp) => (prev[1] > comp[1] ? prev : comp)
return authorsWithLikes.reduce(reducer, authorsWithLikes[0])
}
当单个博客大小 === 1 时,工作不工作,但当输入 = >
const blogs = [{
_id: '5a422a851b54a676234d17f7',title: 'React patterns', author: 'Michael Chan', url: 'https://reactpatterns.com/', likes: 7, __v: 0,
}, {
_id: '5a422aa71b54a676234d17f8', title: 'Go To Statement Considered Harmful', author: 'Edsger W. Dijkstra', url: 'http://www.u.arizona.edu/~rubinson/copyright_violations/Go_To_Considered_Harmful.html', likes: 5, __v: 0,
}, {
_id: '5a422b3a1b54a676234d17f9', title: 'Canonical string reduction', author: 'Edsger W. Dijkstra', url: 'http://www.cs.utexas.edu/~EWD/transcriptions/EWD08xx/EWD808.html', likes: 12, __v: 0,
}, {
_id: '5a422b891b54a676234d17fa', title: 'First class tests', author: 'Robert C. Martin', url: 'http://blog.cleancoder.com/uncle-bob/2017/05/05/TestDefinitions.htmll', likes: 10, __v: 0,
}, {
_id: '5a422ba71b54a676234d17fb', title: 'TDD harms architecture', author: 'Robert C. Martin', url: 'http://blog.cleancoder.com/uncle-bob/2017/03/03/TDD-Harms-Architecture.html', likes: 0, __v: 0,
}, {
_id: '5a422bc61b54a676234d17fc', title: 'Type wars', author: 'Robert C. Martin', url: 'http://blog.cleancoder.com/uncle-bob/2016/05/01/TypeWars.html', likes: 2, __v: 0,
},
]
不知道该怎么办,尝试过实现不同的方法,但现在有点碰壁了。想知道是否有更好的方法?
慕姐4208626
DIEA
qq_笑_17
相关分类