37 lines
1.0 KiB
JavaScript
37 lines
1.0 KiB
JavaScript
const dummy = (blogs) => {
|
|
return 1
|
|
}
|
|
|
|
const sumLikes = (blogs) => {
|
|
return blogs.reduce((sum, blog) => sum + blog.likes, 0)
|
|
}
|
|
|
|
const favoriteBlog = (blogs) => {
|
|
return blogs.reduce((max, blog) => max.likes > blog.likes ? max : blog)
|
|
}
|
|
|
|
const mostBlogs = (blogs) => {
|
|
const authors = blogs.map(blog => blog.author)
|
|
const uniqueAuthors = [...new Set(authors)]
|
|
const authorBlogs = uniqueAuthors.map(author => {
|
|
return { author: author, blogs: authors.filter(a => a === author).length }
|
|
})
|
|
return authorBlogs.reduce((max, author) => max.blogs > author.blogs ? max : author)
|
|
}
|
|
|
|
const mostLikes = (blogs) => {
|
|
const authors = blogs.map(blog => blog.author)
|
|
const uniqueAuthors = [...new Set(authors)]
|
|
const authorLikes = uniqueAuthors.map(author => {
|
|
return { author: author, likes: blogs.filter(blog => blog.author === author).reduce((sum, blog) => sum + blog.likes, 0) }
|
|
})
|
|
return authorLikes.reduce((max, author) => max.likes > author.likes ? max : author)
|
|
}
|
|
|
|
module.exports = {
|
|
dummy,
|
|
sumLikes,
|
|
favoriteBlog,
|
|
mostBlogs,
|
|
mostLikes
|
|
} |