Объекты и сортировкиСортировкиmedium

Топ методов

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

Реализуйте функцию topMethods(stats, limit), которая возвращает не более limit самых популярных методов в проекте, отсортированных по убыванию популярности.

const stats = [ { class: "Object", methods: [ { name: "toString", count: 5 }, { name: "hasOwnProperty", count: 6 }, ], }, { class: "Array", methods: [ { name: "filter", count: 17 }, { name: "splice", count: 5 }, { name: "map", count: 25 }, ], }, { class: "String", methods: [ { name: "replace", count: 12 }, { name: "slice", count: 8 }, ], }, ]; console.log(topMethods(stats, 4)); const output = [ "Array#map", "Array#filter", "String#replace", "String#slice", ];

Так как у разных классов методы могут называться одинаково, в ответе методы должны быть записаны в формате Class#method, например, "Array#splice" или "String#replace".

Если два метода встречаются одинаковое количество раз, то между собой их необходимо отсортировать по полному названию. Например, "Array#splice" идет раньше "String#replace" .

В ответе всегда должно быть не более limit методов. Если в проекте несколько методов с одинаковым количеством использований они или все попадают в ответ, или все не попадают.

const stats2 = [ { class: "Array", methods: [ { name: "filter", count: 2 }, { name: "map", count: 4 }, { name: "keys", count: 1 }, { name: "push", count: 4 }, { name: "splice", count: 2 }, ], }, ]; console.log(topMethods(stats2, 3)); const output2 = [ "Array#map", "Array#push", ];