Не понятно решение
Создайте функцию getRepeats с одним параметром. В этот параметр будет приходить массив данных.
Функция должна возвращать объект, в котором указано сколько раз каждое слово встречается в массиве
Обратите внимание, что счёт начинается не с нуля, а с единицы. Если вы встречаете слово в массиве в первый раз, значит надо записать, что слово встречается один раз, а не ноль.
Не понятна эта часть кода
acc[el]=(acc[el] ||0) + 1
Решение:
const getRepeats = arr=> arr.reduce((acc,el)=>{ acc[el]=(acc[el] ||0) + 1; return acc },{});
console.log(getRepeats(["Василий","Пётр","Иннокентий","Пётр","Иван","Василий"]));
Ответы (1 шт):
Автор решения: Igor
→ Ссылка
const getRepeats = arr => arr.reduce((acc, el) => {
//acc[el] = (acc[el] || 0) + 1;
// or
/*
if (!acc[el]) // have not seen this name yet, set count to zero
acc[el] = 0;
acc[el] += 1; // increase count by one
*/
// or
//acc[el] = (acc[el]? acc[el] : 0) + 1;
// or
//acc[el] = acc[el]? (acc[el] + 1) : 1;
// or
acc[el] = el in acc? (acc[el] + 1) : 1;
return acc;
}, {});
console.log(getRepeats(["Василий", "Пётр", "Иннокентий", "Пётр", "Иван", "Василий"]));