Homework: Arrays 06. Most frequent number


1

Може ли малко помощ, че се овъртях :)

Как да намеря колко пъти се повтаря числото? Ето кода ми: тук




Отговори



1

Ами така като гледам count ти брои само ако еднаквите цифри са подред иначе ги презаписва , например брои веднъж 4 после има две 2 които трият тази 4 след това като имаш отново 4 тя се явява първа 4 а не втора така че те съветвам да си сортираш масива и след това да търсиш .

Като цяло домашното Selection sort и после Maximal sequence и готово .Ето по-кратък вариант на Selection sort ако искаш

function sort(args) { args.splice(0, 1); result=args.sort(function(a, b){return a-b}); console.log(result.join('\n')); }


от vaskoelenkov (279 точки)


1
На пръв поглед, изглежда че проверката трябва да я правиш извън втория цикъл, ако искаш погледни моето решение идеята изглежда еднаква.

от Vlaev (155 точки)


1
Да прав си благодаря :)

от c.karadjov (199 точки)


1

Малко закъснял отговор, но се опитах да я реша с асоциативни масиви и се получи г/д добре :)  (Споделям решението, защото е малко по-ралично и на някого може да му е интересно)

function solve(args) {
args = args.map(Number);
args.splice(0,1);

let result = {};
for (let obj of args) {
if(result.hasOwnProperty(obj)){result[obj] +=1;}
else {result[obj] = 1;}
}

let key = Object.keys(result).reduce(function (a, b) {
return result[a] > result[b] ? a : b
});

console.log(key + " (" + result[key] + " times" +")");

}