Написать функцию ,которая берет масив значений

const words = ['banana', 'grapefruit', 'banana', 'grapefruit', 'banana', 'orange', 'banana'];

Написать функцию ,которая берет масив значений, сортирует (на первом месте должна бить самая 'популярная' строка) и в конечном итоге должно получиться масив такого вида:

[4, 2, 1] - 4 - количество бананов і так дальше


Ответы (1 шт):

Автор решения: Проста Miha

В массиве записывается в от самого популяроного запроса до самого непопулярного, только значения, без количестпо его повторений

var allTypesArray = ['banana', 'grapefruit', 'banana', 'grapefruit', 'banana', 'orange', 'banana'];
var map = allTypesArray.reduce(function(p, c) {
  p[c] = (p[c] || 0) + 1;
  return p;
}, {});

var newTypesArray = Object.keys(map).sort(function(a, b) {
  return map[b] - map[a];
});

console.log(newTypesArray)

→ Ссылка