Перебрать массив объектов

152
20 марта 2019, 06:20

Есть массив объектов. Нужно получить на выходе сколько у каждого юзера completed.

let arr = [{userId: 1, id: 17, title: "quo laboriosam deleniti aut qui", completed: true},
    {userId: 1, id: 18, title: "dolorum est consequatur ea mollitia in culpa", completed: false},
    {userId: 1, id: 19, title: "molestiae ipsa aut voluptatibus pariatur dolor nihil", completed: true},
    {userId: 1, id: 20, title: "ullam nobis libero sapiente ad optio sint", completed: true},
    {userId: 2, id: 21, title: "suscipit repellat esse quibusdam voluptatem incidunt", completed: false},
    {userId: 2, id: 22, title: "distinctio vitae autem nihil ut molestias quo", completed: true},
    {userId: 2, id: 23, title: "et itaque necessitatibus maxime molestiae qui quas velit", completed: false},
    {userId: 2, id: 24, title: "adipisci non ad dicta qui amet quaerat doloribus ea", completed: false},
    {userId: 3, id: 25, title: "voluptas quo tenetur perspiciatis explicabo natus", completed: true},
    {userId: 3, id: 26, title: "aliquam aut quasi", completed: true},
    {userId: 3, id: 27, title: "veritatis pariatur delectus", completed: true}]
Answer 1

let arr = [ 
  {userId: 1, id: 17, title: "quo laboriosam dele", completed: true}, 
  {userId: 1, id: 18, title: "dolorum est consequ", completed: false}, 
  {userId: 1, id: 19, title: "molestiae ipsa aut ", completed: true}, 
  {userId: 1, id: 20, title: "ullam nobis libero ", completed: true}, 
  {userId: 2, id: 21, title: "suscipit repellat e", completed: false}, 
  {userId: 2, id: 22, title: "distinctio vitae au", completed: true}, 
  {userId: 2, id: 23, title: "et itaque necessita", completed: false}, 
  {userId: 2, id: 24, title: "adipisci non ad dic", completed: false}, 
  {userId: 3, id: 25, title: "voluptas quo tenetu", completed: true}, 
  {userId: 3, id: 26, title: "aliquam aut quasi  ", completed: true}, 
  {userId: 3, id: 27, title: "veritatis pariatur ", completed: true} 
]; 
     
var res = arr.reduce((res, item) => { 
  res[item.userId] = (res[item.userId] || 0) + (item.completed? 1 : 0); 
  return res; 
}, {}); 
 
console.log(res);

READ ALSO
Как изменить значение строки MySQL из HTML документа?

Как изменить значение строки MySQL из HTML документа?

Всем привет! Возник вопрос как изменить значение поля Activity с нуля на единицу: https://ibbco/hhjU0q

169
Помогите организовать код

Помогите организовать код

Есть задача получить данные о человеке и высчитать дни до др с помощью классов и конструкторов используя гет, сет

124
Поймать событие нажатие по ссылке jquery

Поймать событие нажатие по ссылке jquery

Есть некий Tabs сформированный с помощью виджета в YII2

162
Codemirror: как избежать преобразования тегов?

Codemirror: как избежать преобразования тегов?

Я использую codemirror для редактирования HTML страницыМой код:

158