Показать сообщение отдельно
  #2 (permalink)  
Старый 10.12.2020, 18:47
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,760

students = [
{name: "Ivan", estimate: 4, course: 1, active: true},
{name: "Petr", estimate: 3, course: 1, active: false},
{name: "Alex", estimate: 2, course: 4, active: false},
{name: "Max", estimate: 5, course: 2, active: true},
{name: "Anton", estimate: 4, course: 3, active: true},
{name: "Roman", estimate: 3, course: 2, active: false},
{name: "Vladimir", estimate: 4, course: 4, active: true},
{name: "Oleg", estimate: 5, course: 3, active: true},
];

let res = students.reduce( (ac, st) => { 
		const nc = st.course;
		if (!(nc in ac)) ac[nc] = 0;
		if (!st.active) ac[nc] ++;
		return ac;
	}, {});

console.log(res)


Сообщение от mateorich
В конечном итоге результат должен выглядеть вот так {1: 1, 2: 1, 3: 0, 4: 1}
А почему не так [1, 1, 0, 1]?
Или course не только числом может быть?

Последний раз редактировалось voraa, 10.12.2020 в 18:52.
Ответить с цитированием