Problem z pętlą

0

Niech mi ktoś wytłumaczy czemu to nie działa błagam.
player.score przypisywane jest po zakonczeniu gry i np wynosi ono 3 a i tak pętla nie działa

const saveList = () => {
    rankingNick.forEach((player) => {
        console.log(player.score)
        for (let i = 100; player.score === i; i--) {
            console.log(player.score)
            if (player.lvl === 'easy') {
                rankingEasy.push(player.nickplayer + ': ' + player.score)
            } else if (player.lvl === 'medium') {
                rankingMedium.push(player.nickplayer + ': ' + player.score);
            } else if (player.lvl === 'hard') {
                rankingHard.push(player.nickplayer + ': ' + player.score);
            }
        }
    })
}
3
  1. Popatrz sobie na pętlę for. Coś niezbyt dobrze wygląda^^
  2. W ogóle po co ta pętla for?
0

Myślałem ze gdy zrobię pętle to bedzie mi wrzucac do rankingu graczy z najwyzszymi wynikami... ale raczej ide w złą strone.
https://codepen.io/szlachtadawid/pen/jOqPJpL
tutaj link do mojej gry. Nwm jak zrobić ranking żeby sie filtrował kto od największej liczby punktów (score)

2
Szlachta_97 napisał(a):

Myślałem ze gdy zrobię pętle to bedzie mi wrzucac do rankingu graczy z najwyzszymi wynikami... ale raczej ide w złą strone.

No ale pętla się wykona tylko wtedy, jeśli player.score będzie równy 100. I wykona się tylko raz.

No i skoro chcesz wrzucać graczy do rankingu, to ten for nie jest w ogóle potrzebny, bo tylko dane zduplikujesz.

0

a moge sortowac objekty w tablicy ? np
tablica = [ {nick = dawid, score = 5}, {nick = dawid, score= 2}, {nick = basia, score=20}] tak sie zapisały dane podczas gry. A przy wyświetleniu rankingu chce aby sie to posortowalo w taki sposob :
tablica = [ {nick = basia, score = 20}, {nick = dawid, score= 5}, {nick = dawid, score=2}]

0

Probowałem juz tego użyć na milion sposobów i nicccccc

0
Szlachta_97 napisał(a):

Probowałem juz tego użyć na milion sposobów i nicccccc

Czyli jak?

0

Było duzo inncyh prób ale nic nie to nie dało. Nie jestem w stanie odwołać się do score w obiekcie

    // rankingNick.score.sort(compareNumbers)
    rankingNick.forEach((player) => {
        console.log(player.score)
        if (player.lvl === 'easy') {
            rankingNick.player.score.sort(compareNumbers)
            rankingEasy.push(player.nickplayer + ': ' + player.score)
        } else if (player.lvl === 'medium') {
            rankingMedium.push(player.nickplayer + ': ' + player.score);
        } else if (player.lvl === 'hard') {
            rankingHard.push(player.nickplayer + ': ' + player.score);
        }

    })
}

function compareNumbers(a, b) {
    return a - b
}```
0

Ehhh, masz sortować tablicę obiektów, a nie tablicę wartości typu int.

0

możesz powiedzieć jak to zrobic ? siedzę na tym od rana i poziom mojej desperacji sięga końca. Wiem że muszę posortować tablice obiektów ale musze to posortować po score ....

1

No a jak się odwołujesz do właściwości obiektu? To tak samo się odwołaj w funkcji sortującej.

No i linijka z rankingNick.score.sort(compareNumbers) też jesy źle. Powinno być: rankingNick.sort(compareNumbers).

0

Czyli ma to wyglądać tak ?

    rankingNick.forEach((player) => {
        rankingNick.sort(compareNumbers)
        console.log(player.score)
        if (player.lvl === 'easy') {
            rankingEasy.push(player.nickplayer + ': ' + player.score)
        } else if (player.lvl === 'medium') {
            rankingMedium.push(player.nickplayer + ': ' + player.score);
        } else if (player.lvl === 'hard') {
            rankingHard.push(player.nickplayer + ': ' + player.score);
        }

    })
}
0

nie sortuje sie ...

(4) [{…}, {…}, {…}, {…}]
0: {nickplayer: "dsa", score: 2, lvl: "easy"}
1: {nickplayer: "dsa", score: 3, lvl: "easy"}
2: {nickplayer: "dsa", score: 0, lvl: "easy"}
3: {nickplayer: "dsa", score: 3, lvl: "easy"}
length: 4
__proto__: Array(0)

może to ma być zmienione ?

function compareNumbers(a, b) {
return a - b
}

0

No przecież napisałem, że to ma być odwołanie tak jak do properties w obiekcie.

I czemu sortujesz tablicę wewnątrz pętli?

1 użytkowników online, w tym zalogowanych: 0, gości: 1