Здравейте, може ли някой да ми обясни къде ми е грешката.Всички примерни тестове минават + още един, а останалите не. Със сигурност бъркъм някъде.
Здравей,
Пробвай да пуснеш твоя код във VSCode с инпут 4 еднакви числа (независимо кои). При правилно решение, трябва да принтира повтарящото се число, защото само то се съдържа в инпута.
Виж какво ще стане при теб. Това ще те насочи къде бъркаш.
Поздрави,
Зарко
Здравей tedooo1111. Не трябва да използвате Set за проверка за дублиране.
Set е колекция от уникални стойности, така че той ще премахне всички дубликати от масива.Вместо това можете да използвате Map, за да преброите честотата на всяко число в масива:
let map = new Map();
for (let num of newArr) {
if (map.has(num)) {
map.set(num, map.get(num) + 1);
} else {
map.set(num, 1);
}
}
Функцията за филтриране връща масив от елементи, които отговарят на дадено условие, но вие се нуждаете само от един елемент.
Вместо това можете да използвате цикъл for, за да итерирате по записите на колекцията и да намерите максималната честота и съответното число.
let maxFreq = 0;
let result = 0;
for (let [num, freq] of map.entries()) {
if (freq > maxFreq || (freq === maxFreq && num < result)) {
// update the maximum frequency and the result
maxFreq = freq;
result = num;
}
}
В описанието на проблема се казва, че трябва да се отпечата на стандартния изход, който е различен от конзолата. Всички задачи в Learn system за езика JavaScript се подават с print(result); вместо console.log(); . И още нещо използвайте оператор плюс (+), за да преобразувате низ в число, примерно let numb = +gets();