Групповой массив Javascript

У меня есть такой массив:

array = [
    {
      "id": 1,
      "title": "Welcome to /r/artificial!",
      "author": "CyberByte",
      "ups": 128,
      "comments": 16,
      "created_at": "2017-06-19T20:16:35.000Z"
    },
    {
      "id": 2,
      "title": "Welcome",
      "author": "Igor",
      "ups": 12,
      "comments": 06,
      "created_at": "2017-06-19T20:16:35.000Z"
    },
    {
      "id": 3,
      "title": "Teste",
      "author": "CyberByte",
      "ups": 11,
      "comments": 1,
      "created_at": "2017-06-19T20:16:35.000Z"
    },
    ]

Я хочу сгруппировать их по авторам и подвести итоги и комментарии. Пытаюсь использовать reduce. Как я могу добиться этого с помощью простого javascript?

Не могли бы вы обновить вопрос, включив в него то, что вы пробовали до сих пор?

Olian04 30.10.2018 17:12

Проверьте здесь: stackoverflow.com/questions/40774697/…

segito10 30.10.2018 17:12
reduce - это простой JavaScript. пожалуйста, добавьте то, что вы пробовали.
Nina Scholz 30.10.2018 17:12
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
55
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Теперь он закрыт как дубликат, но у меня есть ответ, поэтому я решил, что могу его опубликовать:

const array = [
{
"id": 1,
"title": "Welcome to /r/artificial!",
"author": "CyberByte",
"ups": 128,
"comments": 16,
"created_at": "2017-06-19T20:16:35.000Z"
},
{
"id": 2,
"title": "Welcome",
"author": "Igor",
"ups": 12,
"comments": 6,
"created_at": "2017-06-19T20:16:35.000Z"
},
{
"id": 3,
"title": "Teste",
"author": "CyberByte",
"ups": 11,
"comments": 1,
"created_at": "2017-06-19T20:16:35.000Z"
},
]

const results = array.reduce((prev, curr) => ({
  ...prev,
  [curr.author]: {
    comments: (prev[curr.author] ? prev[curr.author].comments : 0) + curr.comments,
    ups: (prev[curr.author] ? prev[curr.author].ups : 0) + curr.ups
  }
}), {});

console.dir(results)

Другие вопросы по теме