Анализатор кода для каждого класса посчитал, сколько раз каждый его метод используется в проекте. Результат доступен в виде массива объектов.
Реализуйте функцию 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", ];