Как сгруппировать пользователя, зарегистрированного по дате - PullRequest
0 голосов
/ 07 мая 2019

У меня проблема с группировкой документов пользователей по дате регистрации в Angular и Firebase

и документ похожи на

email "demo1@gmail.com"
gender "male"
id "42PWIOI0OiMtyOpfu7tfK34apj92"
name "John Doe"
phone "+1765435689"
reg_date April 2, 2019 at 2:10:09 PM UTC+3


email "demo2@gmail.com"
gender "female"
id "96PWHDI0OiMtyOpfu7tfK34apj92"
name "Jane Doe"
phone "+187643489"
reg_date April 4, 2019 at 6:10:09 PM UTC+3

email "demo3@gmail.com"
gender "male"
id "55PWIUTGDiMtyOpfu7tfK34apj92"
name "Wlly Doe"
phone "+1768885689"
reg_date April 2, 2019 at 2:10:09 PM UTC+3


email "demo4@gmail.com"
gender "male"
id "96PWHDI0OiMtyOpfu7tfK34apj92"
name "Olie Doe"
phone "+187643489"
reg_date April 4, 2019 at 2:10:09 PM UTC+3

И нужен результат для группировки данных по reg_date

1 Ответ

0 голосов
/ 07 мая 2019

Я не уверен, что именно вам нужно, но вот один из способов сгруппировать их по reg_date.Я использую Array.reduce () , а затем создаю новый объект, используя Object.Assign () , с reg_date в качестве основного свойства.

const data = [{
    email: "demo1@gmail.com",
    gender: "male",
    id: "42PWIOI0OiMtyOpfu7tfK34apj92",
    name: "John Doe",
    phone: "+1765435689",
    reg_date: "April 2, 2019 at 2:10:09 PM UTC+3"
  },
  {
    email: "demo2@gmail.com",
    gender: "female",
    id: "96PWHDI0OiMtyOpfu7tfK34apj92",
    name: "Jane Doe",
    phone: "+187643489",
    reg_date: "April 4, 2019 at 6:10:09 PM UTC+3"
  },
  {
    email: "demo3@gmail.com",
    gender: "male",
    id: "55PWIUTGDiMtyOpfu7tfK34apj92",
    name: "Wlly Doe",
    phone: "+1768885689",
    reg_date: "April 2, 2019 at 2:10:09 PM UTC+3"
  },
  {
    email: "demo4@gmail.com",
    gender: "male",
    id: "96PWHDI0OiMtyOpfu7tfK34apj92",
    name: "Olie Doe",
    phone: "+187643489",
    reg_date: "April 4, 2019 at 2:10:09 PM UTC+3"
  }
]

const result = data.reduce((h, obj) => Object.assign(h, {
  [obj['reg_date']]: (h[obj['reg_date']] || []).concat(obj)
}), {});

console.log(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...