Size: a a a

JavaScript Noobs — сообщество новичков

2020 July 23

A

Aleksandr in JavaScript Noobs — сообщество новичков
Евгений Ссс
Доброго времени коллеги!

// Есть массив объектов. Мне нужно отсортировать людей по месяцам, что бы потом выводить "Ноябрь -- 10 человек; Декабрь -- 3 человека". По моей логике должно быть так: при каждой итерации запушить отдельно взятый item конкретно в массив с индексом index. Но в моем решении ошибка, и я никак не пойму почему -- в каждый из 12 массивов пушатся абсолютно все item.
[{
   "id": "5e00928d91e7feaa9872ec08",
   "firstName": "Yang",
   "lastName": "Carson",
   "dob": "2019-02-26T16:52:36.244Z"
 },
   {
     "id": "5e00928df892b0c84c82db9d",
     "firstName": "Dorsey",
     "lastName": "Meadows",
     "dob": "2019-09-19T09:34:32.083Z"
   },]

let months =  Array(12).fill([]);

allUsers.forEach((item) => {
 const index = +item.dob.slice(5, 7) - 1;
 months[index].push(item);
}
let  Months = [0,0,0,0,0,0,0,0,0,0,0];
Months.forEach((SoloPeople) => {
 switch (SoloPeople?.dob?.substring(5,7)) {
   case '01':
     Months[0]+=1;
     break;
     case '02':
       Months[1]+=1;
       break;
.....
   default:
     break;
 }
})
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
а если обьекты нужны, то не +=1, а
months[0].push(SoloPeople), потом выводить длинну можешь
источник

РА

Руслан Александров... in JavaScript Noobs — сообщество новичков
Привет! Не подскажете, может ли страница поменять внешний вид кнопки назад?
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
может
источник

РА

Руслан Александров... in JavaScript Noobs — сообщество новичков
Aleksandr
может
Спасибо!
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
пожалуйста =)
источник

М

Максим in JavaScript Noobs — сообщество новичков
Евгений Ссс
Ну это достаточно чтобы поэксперементировать —- можно сделать отдельный массив, а потом уже делать фильтрацию...
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
а зачем двойной проход по массиву?
источник

М

Максим in JavaScript Noobs — сообщество новичков
Aleksandr
а зачем двойной проход по массиву?
прочти что ему нужно было
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
Максим
прочти что ему нужно было
let  Months = [0,0,0,0,0,0,0,0,0,0,0];
Months.forEach((SoloPeople) => {
 switch (SoloPeople?.dob?.substring(5,7)) {
   case '01':
     Months[0]+=1;
     break;
     case '02':
       Months[1]+=1;
       break;
.....
   default:
     break;
 }
})
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
вот это
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
или я что то пропустил
источник

М

Максим in JavaScript Noobs — сообщество новичков
Aleksandr
вот это
ему нужно собрать в кучу месяц и людей у которых дата в этом месяце
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
Максим
ему нужно собрать в кучу месяц и людей у которых дата в этом месяце
вы в константу пушите =)
источник

М

Максим in JavaScript Noobs — сообщество новичков
Aleksandr
вы в константу пушите =)
для массивов и объектов это роли не играет
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
Максим
для массивов и объектов это роли не играет
для понимая кода зато играет, const не изменяемый параметр
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
и у вас баги с мутабельностью будут
источник

A

Aleksandr in JavaScript Noobs — сообщество новичков
как пить дать
источник

М

Максим in JavaScript Noobs — сообщество новичков
какие?
источник

ei

export default - зло... in JavaScript Noobs — сообщество новичков
Евгений Ссс
Доброго времени коллеги!

// Есть массив объектов. Мне нужно отсортировать людей по месяцам, что бы потом выводить "Ноябрь -- 10 человек; Декабрь -- 3 человека". По моей логике должно быть так: при каждой итерации запушить отдельно взятый item конкретно в массив с индексом index. Но в моем решении ошибка, и я никак не пойму почему -- в каждый из 12 массивов пушатся абсолютно все item.
[{
   "id": "5e00928d91e7feaa9872ec08",
   "firstName": "Yang",
   "lastName": "Carson",
   "dob": "2019-02-26T16:52:36.244Z"
 },
   {
     "id": "5e00928df892b0c84c82db9d",
     "firstName": "Dorsey",
     "lastName": "Meadows",
     "dob": "2019-09-19T09:34:32.083Z"
   },]

let months =  Array(12).fill([]);

allUsers.forEach((item) => {
 const index = +item.dob.slice(5, 7) - 1;
 months[index].push(item);
}
Массив один и тот же просто в каждом индексе
источник