Одним из решений является использование Array.reduce () для генерации объекта, который будет содержать каждое имя и счетчик, связанные с ним.Наконец, вы можете использовать Object.values () , чтобы получить желаемый массив.
var input = [
{name: "HYD. CYLINDER"},
{name: "pelle"},
{name: "HYD. CYLINDER"},
{name: "1212"},
{name: "pelle"}
];
let res = input.reduce((acc, {name}) =>
{
acc[name] = acc[name] || ({name, count: 0});
acc[name].count++;
return acc;
}, {});
console.log(Object.values(res));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
Если вам нужен конечный массив, отсортированный по счетчику, то вы можете сделать:
console.log( Object.values(res).sort((a, b) => b.count - a.count) );